|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
02.08.2010, 19:15 | #1 |
Регистрация: 25.12.2009
Сообщений: 6
|
Текстовые файлы в паскале. Как всегда нужна помощь=)))
Привет всем! Нужна естесственно помощь. Вот такое RGR: Сформировать текстовый файл, содержащий строки исходного файла, встречающиеся в нем один раз. Вывести содержимое файлов на экран. В программе используются подпрограммы.
Смогла сделать прогу, которая копирует строки из 1 файла во 2. но нужен счетчик, который бы отсортировывал одинаковые строки и оставлял по одному образцу. Помогите составить такую процедуру или функцию. Код:
Последний раз редактировалось Stilet; 03.08.2010 в 09:10. |
03.08.2010, 00:31 | #2 |
Пользователь
Регистрация: 09.07.2010
Сообщений: 65
|
Так проверяйте равенство, если две переменных совпадают, то удаляйте строку. оО
Только тогда каждую строку надо какой нить переменной стринговой присваивать. Их и сравнивать. А строки разделять, пробелом тем же.
а в конце окажется, что все проблемы были из-за дивана, что стоял не по фэн-шую...
Последний раз редактировалось W.i.d.g.e.t.1; 03.08.2010 в 06:36. Причина: читала криво вопрос. |
03.08.2010, 08:47 | #3 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
добавлю.
Задача может быть решена двумя способами. 1) быстрый и эффективный, но имеющий ограничение по количеству допустимых строк в исходном файле. 2) медленный и неэффективный, но зато имеющий возможность обрабатывать файлы с ЛЮБЫМ количеством строк. итак. Первый способ. Заводим массив строк. Например, Код:
Недостатки: если файл содержит больше строк, чем размерность массива, то такой алгоритм не сможет обработать файл (надо проверять и выдавать соответствующей сообщение). 2-й способ. Открываем файл. Читаем из него одну строчку. Запоминаем номер строки. Устанавливаем файл на начало. Дальше в цикле читаем все строки, сравнивая с текущей. Если достигли конца исходного файла и строка встретилась один раз, то пишем эту строчку в выходной файл. Дальше переходим на номер запомненной строки, читаем следующую строчку и т.д. Маленький хинт - если в цикле подсчёта строк, строка встретилась второй раз, то цикл можно прерывать и переходить на проверку следующей строчки. Работать это будет крайне медленно и печально! Зато для любых файлов. При реализации второго способа лучше использовать не текстовые файлы, а бинарные, в них легко позиционироваться на любую позицию в файле. Но тогда надо написать свои процедурки по выделению строк из читаемого буфера. p.s. если Вам не горит (и, конечно, если не разберётесь самостоятельно), то можно и примерчик решения набросать.... p.p.s. при оформлении кода ОБЯЗАТЕЛЬНО используйте тег [СODE].. [/CODE] - это кнопочка с решёточкой (#)... |
04.08.2010, 14:06 | #4 |
Регистрация: 25.12.2009
Сообщений: 6
|
Да, если не сложно, то лучше примерчик=) Так все-таки понятнее будет. А в мою прогу не получится процедуру вставить, что бы отсортировывала строки? Ее нужно полностью переделать?
|
04.08.2010, 14:41 | #5 |
Delphi Warrior
Старожил
Регистрация: 15.08.2008
Сообщений: 2,502
|
Код:
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++ ya.flex-freelance@yandex.ru Icq - 636-954-303 Последний раз редактировалось Hacker19_90; 04.08.2010 в 14:43. |
04.08.2010, 17:08 | #6 |
Регистрация: 25.12.2009
Сообщений: 6
|
Спасибо=) Ничего, сейчас буду тестить!
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
текстовые файлы в паскале | MetR | Помощь студентам | 9 | 12.06.2010 10:38 |
Текстовые файлы в паскале | Nc1ty_SoBoL | Помощь студентам | 2 | 30.06.2009 19:49 |
Файлы нужна помощь | trew | Помощь студентам | 3 | 10.02.2009 18:38 |
Нужна помощь не решении задачи (файлы). | VirtualPC | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 20.12.2008 15:18 |
текстовые файлы ОЧЕНЬ НУЖНА ПОМОЩЬ | leest | Помощь студентам | 6 | 30.01.2008 10:05 |