Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.04.2012, 11:49   #11
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Если задачка "для себя", то можно попробовать воспользоваться программой comp (win+r -> cmd -> comp /? для просмотра синтаксиса).
ну, если "задачка для себя", то я бы рекомендовал сходить вот в эти темы форума:
посоветуйте программу для сравнения листингов кода

или сюда:
Программа для сравнения содержимого файлов
Serge_Bliznykov вне форума Ответить с цитированием
Старый 24.04.2012, 12:30   #12
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

если нужно полное совпадение строки 1-го файла со строкой второго, а не вхождение строки 1 в строку 2.

то можно попробовать
Код:
list2:=TstringList.create;
list2.Sorted:=true; //кажется так называется свойство отвечающее за сортировку
list2.LoadFromfile(......);

for j:=0 to list1.count-1
  if list2.Indexof(list1.string[j])>=0 then
   listout.add(list1.string[j]);
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 24.04.2012, 18:10   #13
blblbl-org
Пользователь
 
Регистрация: 18.04.2012
Сообщений: 12
По умолчанию

задачка для себя

1) Нужно просто внести в третий файл те строки из второго, которых нет в первом.
2) возможно частичное вхождение. Т.е. не целиком строки надо сравнивать. Т.е. indexOf не подходит
blblbl-org вне форума Ответить с цитированием
Старый 24.04.2012, 19:23   #14
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

2) значит не ИндексОф, а ручной перебор с Pos+если надо еще можно убрать чувствительность к регистру.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 24.04.2012, 20:25   #15
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Код:
s:=list2.Text;
// зачем 1000000 раз генерировать одну и ту же строчку ( к тому же достаточно объемную)
for i := 0 to List1.Count - 1 do
 begin
  if pos(List1[ i ], s) = 0 then
    ListOut.Add(List1[ i ]);
 end;
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 25.04.2012, 15:55   #16
blblbl-org
Пользователь
 
Регистрация: 18.04.2012
Сообщений: 12
По умолчанию

Евгений, так у меня так же и сделано (в первом сообщении код).. Это единственный, наиболее быстрый способ получается?
blblbl-org вне форума Ответить с цитированием
Старый 25.04.2012, 16:07   #17
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
Евгений, так у меня так же и сделано (в первом сообщении код).. Это единственный, наиболее быстрый способ получается?
Нет, там 1000000 раз проводится генерация одной и той же большой строки
да еще к тому же в процессе генерации строки много-много раз эта строка пересоздается итого 1000000 * 1000000 раз создание строки. выделение памяти самый медленный процесс
Код:
pos(xxxx, list2.Text ) вот это!!!!!
это надо сделать ОДИН раз ДО цикла.
Код:
s:=List2.Text;
и ы цикле пользоваться одной строкой( не пересоздавая ее)
Код:
pos(...., s )
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 26.04.2012, 15:19   #18
blblbl-org
Пользователь
 
Регистрация: 18.04.2012
Сообщений: 12
По умолчанию

Евгений, спасибо.
Скорость выросла в 6 раз )
blblbl-org вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сравнение данных в текстовых файлах zhukovms Помощь студентам 34 05.09.2011 11:58
ОБРАБОТКА текстовых файлов Kirillnd C++ Builder 2 31.07.2011 16:40
Обработка текстовых файлов. kolobot Помощь студентам 2 15.12.2010 21:14
копирование текстовых файлов teacher Общие вопросы Delphi 4 16.02.2008 20:29
Сравнение текстовых файлов BR17UY Общие вопросы Delphi 15 07.05.2007 20:18