|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
01.05.2007, 18:11 | #1 |
Регистрация: 13.04.2007
Сообщений: 6
|
Сравнение текстовых файлов
Вот такая ситуация!
Надо сравнить два текстовых файла. Я посторочно из первого читаю текст. Затем првоеряю, есть ли строка во втором файле. Если она есть мне нужно её удалить из второго... Как бы это можно было сделать? Или хотя бы, как можно второй файл полсностью прочитать в String переменную? Чтобы затем удалить с Pos(File2, начало, конец). Ато в string переменную читается только построчно... Заранее благодарен... |
01.05.2007, 18:47 | #2 |
Форумчанин
Регистрация: 24.01.2007
Сообщений: 323
|
Попробуй сделать масив строк Array[1..(тут число которое твоя програма можэт максимально обрабатывать(используй константу для удобства))] of string;
или просто Pchar(строка), но я не знаю точно как оно действует..
Всё проще чем вы думаете, нужно только правильно подойти к тому или иному вопросу?
|
01.05.2007, 19:33 | #3 |
Форумчанин Подтвердите свой е-майл
Регистрация: 18.11.2006
Сообщений: 172
|
AnsiStrComp - сравнивает 2 строки с учётом регистра,
AnsiStrIComp - тоже самое, но без учёта регистра... Модуль - SysUtils. Если это не то, то используй EOLn и OEF Думаю разберёшся...
дык!
|
01.05.2007, 21:27 | #4 |
Пользователь
Регистрация: 22.01.2007
Сообщений: 25
|
[quote=BR17UY;18126]
Если она есть мне нужно её удалить из второго... Как бы это можно было сделать? [quote] Просто так из текстового файла невозможно удалить строку. Если я привильно понял то ты хочешь удалять строки из второго файла, и если в конце всего цикла во втором файле не останется ни одной строки то файлы идентичны. Но я бы сделал не так. Вот примерный код: ... var F1,F2:TextFile; S1,S2:string; ... While (not EOF(F1)) and (not EOF(F2)) do read(F1,S1); read(F2,S2); If S1<>S2 then break; end; ... |
02.05.2007, 20:10 | #5 |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
есть класс Tstringlist
Код:
|
03.05.2007, 00:54 | #6 |
Регистрация: 13.04.2007
Сообщений: 6
|
Пасиб ребят, что не бросили в беде.
Если быть конкретным, то задача такова... Есть два файла: cmd.txt и syst.txt. cmd.txt - скачивается из нета, он содержит команды для выполнения. syst.txt - основной командный файл, из него прога уже читает отфильтрованные команды. Содержимое cmd.txt: L www.supersite.ru/files/fils.exe D www.nnov.ru/files/setup.exe (ссылки чисто для примера) Содержимое syst.txt: L www.supersite.ru/files/prog.exe L www.nnov.ru/files/setup.exe Как стало наверное понятно, ссылки начинающиеся с буквы L просто дописываются в файл syst.txt А ссылки начинающиеся с буквы D - должны быть вырезаны из syst.txt Так как D - это отмена загрузки той или иной ссылки. Если строка из cmd.txt начинается с буквы D - значит находим ссыку в syst.txt и удаляем её от туда... Вот собственно и всё! Но пасиб, что предложили альтернативы, обязательно учту! |
03.05.2007, 20:18 | #7 |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
так в чём сложность????в чём проблема?
для получения индекса строки есть функция indexOf если результат -1 то не найдена, только надо сначала переправить первый символ str[1]:='L'; |
03.05.2007, 20:41 | #8 |
Регистрация: 13.04.2007
Сообщений: 6
|
Я с тобой согласен rpy3uH :-)
В общем сложности то и нету... Что-то подсказывает, что наиболее реальным будет использование массивов. Просто пишу содержимое файлов в два массива. Потом анализирую, и либо дописываю в массив, либо игнорирую новые ссылки. А потом переписываю файл syst.txt Хотя может есть и более грамотное решение поставленной задачи ? |
04.05.2007, 10:00 | #9 |
Форумчанин
Регистрация: 03.11.2006
Сообщений: 321
|
Что-то мне не особо нравится вся эта работа с файловыми переменными, особенно когда компьютер вырубается. Я бы лучше в Edit через Loadfromfile загружал, а потом уже проводил сравнения строк. Тем более файл текстовый. А Edit можно и невидимым сделать.
|
04.05.2007, 20:17 | #10 |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
не Edit, а Memo......
использование memo или stringlist намного лучше |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Выбор компонента для работы с содержимым текстовых файлов[Delphi] | sergey31 | Помощь студентам | 2 | 28.08.2008 16:53 |
копирование текстовых файлов | teacher | Общие вопросы Delphi | 4 | 16.02.2008 20:29 |
как загрузить в ListBox несколько текстовых файлов? | One.Love | Общие вопросы Delphi | 5 | 14.01.2008 11:54 |
Слияние двух текстовых файлов | nataly_ukr | Общие вопросы Delphi | 5 | 26.12.2007 16:45 |
Сравнение 2-х файлов | asale | Microsoft Office Excel | 17 | 03.06.2007 15:58 |