Форум: "Основная";
Текущий архив: 2003.07.17;
Скачать: [xml.tar.bz2];
ВнизПримерный код(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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.008 c