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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.07.2011, 12:21   #1
hon
Форумчанин
 
Регистрация: 08.06.2011
Сообщений: 693
Радость Удаление дубликатов строк

Имеется текстовый файл F:\BAZA\ALL2.txt. Нужно убрать из него дубликаты и записать результаты в F:\BAZA\ALL3.txt.
Например файл ALL2.txt следующего содержимого:
Код HTML:
a
b
c
d
a
e
b
Тогда файл ALL3.txt должен быть таким:
Код HTML:
a
b
c
d
e
Количество строк в файле неизвестно, но он очень большой. 13-15 МБ.
hon вне форума Ответить с цитированием
Старый 30.07.2011, 12:48   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

ИМХО взять любую СУБД, залить в нее содержимое файла, потом сделать отбор с группировкой и высадить в другой файл. Я лично такое на Фокспро предпочитаю делать, а не писать програмулины.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.07.2011, 13:40   #3
hon
Форумчанин
 
Регистрация: 08.06.2011
Сообщений: 693
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
ИМХО взять любую СУБД, залить в нее содержимое файла, потом сделать отбор с группировкой и высадить в другой файл. Я лично такое на Фокспро предпочитаю делать, а не писать програмулины.
Что такое ИМХО и СУБД?
hon вне форума Ответить с цитированием
Старый 30.07.2011, 14:06   #4
какtus
Пользователь
 
Аватар для какtus
 
Регистрация: 02.04.2011
Сообщений: 56
По умолчанию

СУБД- Система Управления Базами Данных.
ИМХО- Имею Мнение Х..ен Оспоришь.
какtus вне форума Ответить с цитированием
Старый 30.07.2011, 14:29   #5
denisbrain
Форумчанин
 
Регистрация: 29.05.2011
Сообщений: 449
Радость

Цитата:
Сообщение от какtus Посмотреть сообщение
СУБД- Система Управления Базами Данных.
ИМХО- Имею Мнение Х..ен Оспоришь.
http://rapid.ufanet.ru/7572876
задания на pascal/delphi ICQ 368254335
Tel +79177425326 mail denis-naymov1985(at)mail.ru login skype denis.new.skype
denisbrain вне форума Ответить с цитированием
Старый 30.07.2011, 15:04   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Тогда файл ALL3.txt должен быть таким:
файл должен быть отсортирован, там должен сохраниться исходный порядок появления символов или это абсолютно неважно?

Вы создали тему в разделе Pascal
Какой именно компилятор Паскаля имеется в виду? (FreePascal - это тоже Паскаль... )



denisbrain, попытка засчитана.
НО!!!
1) кто Вам сказал, что решение на Delphi устроит? (Delphi и Pascal не всегда синонимы )
2) зачем реализовавывать метод поиска (это я про вашу функцию SeahStringList) - есть уже готовая IndexOf()
а если отсортировать методом .Sort - то можно использовать крайне эффективную процедуру поиска методом Find()
3) на будущее - категорически не рекомендую использовать для обработки TMemo -
TMemo.Lines имеет тип TStringList - вот создавайте переменную (объект) данного класса и его используйте.
Это В РАЗЫ (может даже на порядок) увеличивает быстродействие за счёт того, что Memo - визуальный компонент, а TStringList - нет!

Последний раз редактировалось Serge_Bliznykov; 30.07.2011 в 15:10.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 30.07.2011, 15:35   #7
denisbrain
Форумчанин
 
Регистрация: 29.05.2011
Сообщений: 449
Радость

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
файл должен быть отсортирован, там должен сохраниться исходный порядок появления символов или это абсолютно неважно?

Вы создали тему в разделе Pascal
Какой именно компилятор Паскаля имеется в виду? (FreePascal - это тоже Паскаль... )



denisbrain, попытка засчитана.
НО!!!
1) кто Вам сказал, что решение на Delphi устроит? (Delphi и Pascal не всегда синонимы )
2) зачем реализовавывать метод поиска (это я про вашу функцию SeahStringList) - есть уже готовая IndexOf()
а если отсортировать методом .Sort - то можно использовать крайне эффективную процедуру поиска методом Find()
3) на будущее - категорически не рекомендую использовать для обработки TMemo -
TMemo.Lines имеет тип TStringList - вот создавайте переменную (объект) данного класса и его используйте.
Это В РАЗЫ (может даже на порядок) увеличивает быстродействие за счёт того, что Memo - визуальный компонент, а TStringList - нет!

жесть разнесли в пух и прах ) код писал 5 минут... ))) пробла у него там одна есть файл 15 Мб можно в StringList закачать?
задания на pascal/delphi ICQ 368254335
Tel +79177425326 mail denis-naymov1985(at)mail.ru login skype denis.new.skype

Последний раз редактировалось denisbrain; 30.07.2011 в 15:38.
denisbrain вне форума Ответить с цитированием
Старый 30.07.2011, 17:04   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
пробла у него там одна есть файл 15 Мб можно в StringList закачать?
да хоть сто пятьдесят!

вопрос в другом - автору топика вообще Delphi подходит или нет...
я ему вопрос(ы) задал - молчит...


вот, просто для пробы.
на моём слабеньком и стареньком компьютере.
46 Мб файл записывается ~12 сек.
читается в память ~1.7 сек.
если кому-то желание проверить, вот код:
Код:
procedure TForm1.ButtonWriteClick(Sender: TObject);
var ts : TstringList;
 i : integer;
 w : LongInt;
begin
  ts := TstringList.Create;
  for i:=1 to 4000000 do
    ts.Append('One string');
  w := GetTickCount();
  ts.SaveToFile('test022.dat');
  w := GetTickCount() - w;
  FreeAndNil(ts);
  ShowMessage('Время записи в файл '+FloatToStr(w/1000)+' сек.');
end;

procedure TForm1.ButtonReadClick(Sender: TObject);
var ts : TstringList;
 i : integer;
 w : LongInt;
begin
  ts := TstringList.Create;
  w := GetTickCount();
  ts.LoadFromFile('test022.dat');
  w := GetTickCount() - w;
  FreeAndNil(ts);
  ShowMessage('Время чтения из файла в TStringList '+FloatToStr(w/1000)+' сек.');
end;

Последний раз редактировалось Serge_Bliznykov; 30.07.2011 в 17:20.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 31.07.2011, 20:11   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
ИМХО- Имею Мнение Х..ен Оспоришь.
От чудило
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.08.2011, 13:54   #10
hon
Форумчанин
 
Регистрация: 08.06.2011
Сообщений: 693
Подмигивание

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
файл должен быть отсортирован, там должен сохраниться исходный порядок появления символов или это абсолютно неважно?

Вы создали тему в разделе Pascal
Какой именно компилятор Паскаля имеется в виду? (FreePascal - это тоже Паскаль... )



denisbrain, попытка засчитана.
НО!!!
1) кто Вам сказал, что решение на Delphi устроит? (Delphi и Pascal не всегда синонимы )
2) зачем реализовавывать метод поиска (это я про вашу функцию SeahStringList) - есть уже готовая IndexOf()
а если отсортировать методом .Sort - то можно использовать крайне эффективную процедуру поиска методом Find()
3) на будущее - категорически не рекомендую использовать для обработки TMemo -
TMemo.Lines имеет тип TStringList - вот создавайте переменную (объект) данного класса и его используйте.
Это В РАЗЫ (может даже на порядок) увеличивает быстродействие за счёт того, что Memo - визуальный компонент, а TStringList - нет!
Я хотел создать тему в разделе Dеlphi, но у меня были проблемы с монтированием образа через *amo* Tools, и я решил закинуть через TURBO PASCAL 7.1, а потом перекинуть на Delphi.

Еще раз спасибо denisbrain за быструю и понятную помощь.
hon вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
удаление дубликатов в ListView fate Общие вопросы Delphi 8 12.05.2011 16:51
Удаление дубликатов Deltist Microsoft Office Excel 11 14.01.2011 16:01
поиск дубликатов файлов(имя, тип, размер). Вывод дубликатов на экран с отображением их пути faraon1792 Помощь студентам 4 19.03.2010 23:46
Удаления дубликатов строк memo AquaKlaster Общие вопросы Delphi 7 20.07.2009 23:46
удаление дубликатов и группировка строк Serglen Microsoft Office Excel 2 30.07.2008 15:51