![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Поиск даты и слова в txt
Garacio © (2007-01-30 20:12:00)Отчёт о работе «чужой» программы сохраняется в файле LOG.txt в виде:
------------------------
01.01.07 10:00
Ошибка №ХХХ
Примечание-1
Примечание-2
02.01.07 14:10
Ошибка №ХХХ
Примечание-1
Примечание-2
Примечание-3
02.01.07 16:30
Предупреждение
Примечание
…
-----------------------
Как организовать вывод (в своей программе) в поле Memo информации об сегодняшних ошибках (предупреждение игнорировать)?
Palladin (2007-01-31 16:12:00) [1]
> Efir (31.01.07 16:06) [6]
если значение равнонулю, тогда не найдено
Джо (2007-01-31 16:06:00) [2]> 1. Как проверять строку на наличие слова "Ошибка", если
> оно не единственное в этой строке?
Pos
> 2. Как добавить проверку сообщения на соответствие сегодняшней
> дате? (или как вариант очищать при закрытии программы файл
> txt)?
Разобрать строку при помощи Pos. Для конвертирования даты из строки — [Try]StrToDateTime, а лучше — ручной разбор и EncodeDateTime.
> 3. И как отслеживать изменения во время работы программы,
> если работать в разных ОС?
FindFirstChangeNotification работает во всех версиях Windows, начиная с Windows 95.
Кроме того, можно просто периодически проверять время последнего доступа к файлу.
Efir (2007-01-31 16:06:00) [3]Pos(строка). Результат функции - первое вхождение слова в строке, если значение <0 , значит слово не найдено.
Garacio (2007-01-31 16:00:00) [4]Подсказали FindFirstChangeNotification - но я прочитал, что это не работает в версиях Windows9x!
У меня появилась идея, может Вы поможете реализовать её?
При запуске программы:
AssignFile(txt, Dir+'\LOG.txt');
Reset(txt);
while not EOf(txt) do
begin
Readln(txt, Stroka);
If Stroka = 'Ошибка'
then begin
While Stroka <>'' do
MemoInfo.Text := Stroka;
end;
end;
CloseFile(txt);
Должно получиться примерно так, но:
1. Как проверять строку на наличие слова "Ошибка", если оно не единственное в этой строке?
2. Как добавить проверку сообщения на соответствие сегодняшней дате? (или как вариант очищать при закрытии программы файл txt)?
3. И как отслеживать изменения во время работы программы, если работать в разных ОС?
Джо (2007-01-30 20:32:00) [5]Если файл относительно невелик, то можно воспользоваться классом TStringList.
1. Загрузка файла: List.LoadFromFile
2. Доступ к строкам по номеру: List[N], кол-во строк: List.Count.
Garacio (2007-01-30 20:25:00) [6]Во-первых, скажу честно, не нашёл понятного (для новичка) примера поиска слова в txt-файле.
Во-вторых, мы, допустим, нашли слово 'Ошибка', необходимо отобразить примечание (но мы не знаем - сколько строчек будет занимать примечание, известно только, что сообщения разделены пустой строкой)?
Джо (2007-01-30 20:18:00) [7]А в чем конкретная трудность?