Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.07.17;
Скачать: CL | DM;

Вниз

Примерный код(Temp)   Найти похожие ветки 

 
default ©   (2003-07-03 01:20) [0]

Удалено модератором
Примечание: И что ?


 
default ©   (2003-07-03 01:27) [1]

Удалено модератором
Примечание: Тихо сам с собою я веду беседу?


 
Юрий Зотов ©   (2003-07-03 02:23) [2]

Ну, типа, убрали одинаковые строки, навскидку. А в чем вопрос-то?

Если допускается изменение порядка строк, я бы просто использовал TStringList с Sorted и dupIgnore.


 
panov ©   (2003-07-03 02:24) [3]

А примерный код с работы домой надо на дискетках носить или посылать по почте(можно даже в конверте).


 
default ©   (2003-07-03 02:53) [4]

panov © (03.07.03 02:24)
извиняюсь, код был предназначен не мне
Юрий Зотов © (03.07.03 02:23)
писал этот код не себе, но вопрос есть
если файл большой к примеру 100 мегабайт
как тогда оптимально решить эту задачу?


 
default ©   (2003-07-03 02:58) [5]

хотя да, читать кусками файл с диска и всё наверно
так как этот вопрос больше интересует того для кого он писался
пусть он и спрашивает
отвечать не надо
тема закрыта


 
Юрий Зотов ©   (2003-07-03 03:51) [6]

> default © (03.07.03 02:58)

Не уверен, но можно рассмотреть вариант с CreateFileMapping и работой по указателям. Тогда всю нужную буферизацию и подкачку система сделает сама.


 
XHelp ©   (2003-07-03 03:56) [7]

Писал - я, и нужно это мне:

создаю StringList, загружаю туда все стринги каторые нужно и делаю:
sl.Sort;
sl.Duplicates:=dupIgnore;

только вот ничего не делаеться... или я не то делаю?

Цель задачи: Отбросить все дубликаты, оставив один выриант, тоесть если есть 5 раз "blabla" то оставить только один раз. Сортировка необязательна.


 
default ©   (2003-07-03 05:08) [8]

procedure TForm1.Button1Click(Sender: TObject);
var
SL: TStringList;
i: Byte;
begin

SL := TStringList.Create;
SL.Add("bab");
SL.Add("abc");
SL.Add("bab");
SL.Add("bac");
SL.Add("bab");
SL.Add("abc");
SL.Add("bab");

SL.Sort;
if SL.Count <> 0 then begin
Memo1.Lines.Add(SL[0]);
for i := 1 to SL.Count - 1 do if SL[i] <> SL[i - 1] then
Memo1.Lines.Add(SL[i])
end;
SL.Free

end;

можешь сделать навроде этого только строки берёшь из файла и
записываешь не в Memo1.Lines, а в файл
так наверно быстрее всего через TStringList, хотя...



 
ЮЮ ©   (2003-07-03 06:05) [9]

>создаю StringList, загружаю туда все стринги каторые нужно и делаю:
>sl.Sort;
>sl.Duplicates:=dupIgnore;

1)создаешь StringList
2)делаешь sl.Sorted := true; sl.Duplicates:=dupIgnore;
3)а теперь добавляешь строки, при этом дубликаты добавляться не будут, а результирующий список будет отсортирован


 
Юрий Зотов ©   (2003-07-03 06:54) [10]

> XHelp © (03.07.03 03:56)

Из справки:

Set Duplicates before adding any strings to the list. Setting Duplicates to dupIgnore or dupError does nothing about duplicate strings that are already in the list.



Страницы: 1 вся ветка

Текущий архив: 2003.07.17;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.014 c
3-55391
Alexander Vasjuk
2003-06-20 13:12
2003.07.17
TIBDataSet: Проблема с генератором


1-55494
Sfagnum
2003-07-02 14:31
2003.07.17
RichEdit выделение слова


14-55790
shark
2003-06-28 18:00
2003.07.17
Опять Dll


11-55482
mike.dld
2002-11-09 15:42
2003.07.17
StringGrid


14-55831
Prov
2003-07-01 16:41
2003.07.17
Что с рассылкой ?