Хочу написать програмку для удаления определенных строк в lo
Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду
Хочу написать програмку для удаления определенных строк в log-файле. Подскажите какие компоненты нужно использывать.
- Romeo
- Сообщения: 3126
- Зарегистрирован: 02 мар 2004, 17:25
- Откуда: Крым, Севастополь
- Контактная информация:
А зачем пользоваться какии либо компонентами? Можно просто открыть файл, найти нужную строку и удалить. Всё делается с помощью Win32 API.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
- Naeel Maqsudov
- Сообщения: 2570
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
Можно еще проще: никакого WinAPI.
Правда, начиная с D5 идентификаторы assign и некоторые другие перекрыты в других стандартных модулях, подгружающихся позже, поэтому возможно прийдется везде писать system.assign, system.close и т.д.
Код: Выделить всё
var
fi,fo:text;
s:string;
begin
assign(fi,"c:\111.log");
reset(f);
assign(fo,"c:\111.filtered.log");
rewrite(f);
while not eof(fi) do begin
readln(fi,s);
if not <s подлежит удалению> then writeln(fo,s);
end;
close(fi);
close(fo);
end.
Если события в логе разделены переносами строк, то проще всего делать
TStringList.loadFromFile
и работать с каждой записью отдельно
Там и удалять можно построчно.
TStringList.loadFromFile
и работать с каждой записью отдельно
Там и удалять можно построчно.
- Naeel Maqsudov
- Сообщения: 2570
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
Плохой совет про TStringList!
Логи снимаемые в эксплуатационном режиме как правило имеют очень большой размер. Попробуйте загрузить так 100М.
TStringList грузит строки в память, а память отъедает из кучи.
Логи снимаемые в эксплуатационном режиме как правило имеют очень большой размер. Попробуйте загрузить так 100М.
TStringList грузит строки в память, а память отъедает из кучи.
>Naeel Maqsudov
>Куратор
Про большой размер - согласен...
Если скорость критична, то вроде потоки работают с файлами быстрее, чем assign...
>Куратор
Про большой размер - согласен...
Если скорость критична, то вроде потоки работают с файлами быстрее, чем assign...