![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 06.07.2010
Сообщений: 105
|
![]()
Вообщем сел я пару часов назад за теорию и практику по типизированным файлам, столкнулся с некоторым непониманием, от части вызванным сильным хотением спать, вообщем есть файл типа рекорд, в котором есть жители:имя,адрес, тра-ляля, и нужно по средством чтения этого файла, который мы сами создаем, вывести в текстовый новый файл, людей которые живут вместе(т.е. соседи), по запрошенному адресу.
Я начал работать, но потом появилась проблема с чтением из готового файла, паскаль начал ругаться, вообщем я психанул и стер всю процедуру с чтением и записью в txt ибо не смог понять где ошибка, вообщем буду благодарен за дельные советы+посоветуйте оптимальный вариант по проверке на соседей( я думаю подключить в процес множества, но это кажется громоздким, пытался сделать красивый перебор, всегда вылетали какие-то бока)... Задача элементарная до ужаса, и стоит мне проспаться я уверен что её решу, но на это нету времени, мб есть такие экстрималы, которые сейчас не спят, или у вас часовой пояс кординально отличается от моего, вообщем до утра мне её нужно доделать, вот что сделал я: Код:
вообщем голова не варит, выручайте.
Carpe Diem
|
![]() |
![]() |
![]() |
#2 | |
Форумчанин
Регистрация: 23.09.2010
Сообщений: 682
|
![]() Цитата:
можно попробывать такой код (не проверял) Код:
Проще всего признать свою ошибку.
Гораздо труднее еЁ осознать и исправить. Последний раз редактировалось Niro; 07.02.2012 в 08:15. |
|
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
а мне непонятно определение соседи в данном контексте...
некто, проживающий по адресу ул.Ленина, д.7 является ли соседом тому, кто проживает по адресу ул.Ленина д.8 ? (при принятой в России нумерации, эти дома будут находится на противоположных сторонах улицы и совсем не факт, что напротив друг друга!) а если дом многоквартиный - это надо учитывать? многоквартиный дом №7 и рядом многоквартирный дом №9 - все жители всех квартир - соседи?! В задаче должно быть чётко сформулировано - какие адреса считаются соседними. а вообще, я бы решал эту задачу отсортировав всех жителей по адресам (первый ключ сортировки - улица, второй ключ сортировки - номер дома - (причём чётные и нечётные номера отдельно - не подряд, третий ключ сортировки - по номеру квартиры - а потом банальный проход по массиву - если следующий элемент расположен рядом(по адресному соседству) - выдать жителя как соседа, и так до конца массива... |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 06.07.2010
Сообщений: 105
|
![]()
Соседи те, кто живет в одном доме, на одной улице,
Ленина 8 Ленина 8
Carpe Diem
|
![]() |
![]() |
![]() |
#5 | |
Форумчанин
Регистрация: 06.07.2010
Сообщений: 105
|
![]() Цитата:
Я думаю такой вариант с флагами прокатит, токо как его втиснуть чтобы код был рабочий Срочно помогите доделать, плз!!
Carpe Diem
Последний раз редактировалось Heming; 07.02.2012 в 10:38. |
|
![]() |
![]() |
![]() |
#6 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]() Цитата:
Дело в том, что если речь идёт о TurboPascal'е, то в нём нет и не было нормальных динамических массивов. Поэтому это решается либо через указатели (как цивилизовано - через организацию динамических связных списков, так и хакерскими методами - указатель на массив из одного элемента, а выделяем памяти сколько нужно, отключаем проверку на границы индексов и юзаем массив через этот указатель), либо, более простой способ (для подобных учебных задач обычно прокатывает для сдачи). Задаётся обычный статический массив заведомо большого размера (больше, чем может быть обработато записей). ну, например, на 500 (600-700-1000-2000-....) записей. Тогда, разумеется, большее число записей не может быть обработано. Но такой подход вполне оправдан. Главное, чтобы программа корректно обрабатывала, если ей пытаются подсунуть большее число, чем задано записей.. такой код пойдёт, для начала? Код:
p.s. учтите, что раз у вас город и улица задаются строковыми значениями, тогда строка "Москва" НЕ БУДЕТ равна строке "МОСКВА"! Это же замечание касается и названия улицы... Последний раз редактировалось Serge_Bliznykov; 07.02.2012 в 11:04. |
|
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 06.07.2010
Сообщений: 105
|
![]()
У меня ABC Pascal, сейчас буду пытаться, спс.
Код:
С этой частью я как бы понял, но у меня все еще остался вопрос по поводу чтения, из типизированного файла в txt:т.е. из с помощью существующего файла, создаем ткст, в который записываем все содержимое предыдущего(опустим, пока условие задачи, просто переписать из готового файла в txt), как это правильно реализовать? я сколько по-разному не пробывал, выдавало ошибку, вот еще недудачная попытака, можете обьяснить этот момент как делать? Код:
Carpe Diem
Последний раз редактировалось Heming; 07.02.2012 в 11:24. |
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
ну что вы?!!
Append(fl); можно выполнять ТОЛЬКО ОДИН РАЗ (да и то, если текстовый файл существует!) а вы в цикле вызываете. Так НЕЛЬЗЯ!! добавлено кстати, массив записей для того, чтобы переписать из типизированного файла в текстовый ВААЩЕ не нужен! (правда, он может быть весьма полезен для сортировки и последующего поиска соседей)... Последний раз редактировалось Serge_Bliznykov; 07.02.2012 в 15:49. |
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 06.07.2010
Сообщений: 105
|
![]()
Может мне кто-то програмно написать как записать в текстовый файл содержимое типизированого без НАМЕКОВ, без хождений вокруг доокола, просто напишите две строчки кода, которые я не знаю как писать!"!!!!
Carpe Diem
|
![]() |
![]() |
![]() |
#10 |
Участник клуба
Регистрация: 30.01.2011
Сообщений: 1,578
|
![]()
собственно файл с которым ассоциируется переменная fin у вас текстовый... а записать пытаетесь как в типизированном...
вот ориентировочное исправление Код:
пишу код не только за печеньки
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Типизированные файлы(Паскаль) | Китос | Помощь студентам | 1 | 13.10.2011 15:10 |
Типизированные Файлы. Паскаль. | Chaara | Помощь студентам | 2 | 09.04.2011 00:58 |
типизированные файлы (паскаль) | Rfn.if | Помощь студентам | 1 | 16.03.2011 10:46 |
типизированные файлы, паскаль! | D1em | Паскаль, Turbo Pascal, PascalABC.NET | 4 | 12.02.2011 17:11 |
Типизированные файлы.Паскаль.help! | ромка) | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 17.05.2008 07:59 |