![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Привет!
Есть простой текстовый файл со следующим содержимым: Код:
Message to send : 03/02/2013 15:47:46 03 Farrow 2 (6 )0 Not all valves fed VALVE235 (+) 1 Message to send : 03/02/2013 15:47:46 03 Farrow 2 (6 )0 Not all valves fed VALVE235 (+) 1 Message to send : 03/02/2013 15:58:03 05 Fattering 1 (6 )0 Not all valves fed VALVE523 (+) 21 Message to send : 03/02/2013 15:58:03 05 Fattering 1 (6 )0 Not all valves fed VALVE523 (+) 21 Message to send : 03/02/2013 16:32:56 02 Farrow 1 (10)1 No room in WEIGH 1 Message to send : 03/02/2013 16:32:56 02 Farrow 1 (10)1 No room in WEIGH 1 Message to send : 03/02/2013 16:50:12 06 Fattering 2 (6 )0 Not all valves fed VALVE241 (+) 12 Message to send : 03/02/2013 16:50:12 06 Fattering 2 (6 )0 Not all valves fed VALVE241 (+) 12 Message to send : 03/02/2013 18:04:56 03 Farrow 2 (6 )0 Not all valves fed VALVE244 Message to send : 03/02/2013 18:04:56 03 Farrow 2 (6 )0 Not all valves fed VALVE244 Message to send : 03/16/2013 09:05:39 01 Breeding (6 )0 Not all valves fed VALVE 26 (+) 550 Message to send : 03/16/2013 09:05:39 01 Breeding (6 )0 Not all valves fed VALVE 26 (+) 550 Message to send : 03/26/2013 11:53:47 04 Weaners (6 )0 Not all valves fed VALVE 1 (+) 22 Message to send : 03/26/2013 11:53:47 04 Weaners (6 )0 Not all valves fed VALVE 1 (+) 22 Файл периодически дописывается. Нужно парсить его и загонять данные в таблицу (DB), то есть в столбец 1 пишем Message to send, во второй 03/26/2013 и т.д. Подскажите, как реализовать, пожалуйста. |
|
#2
|
||||
|
||||
|
функции Pos, PosEx, Copy помогут тебе в парсинге)
|
|
#3
|
||||
|
||||
|
Используй регэкспы (с).
Я задолбался уже писать эту фразу. |
| Этот пользователь сказал Спасибо Uniq! за это полезное сообщение: | ||
cybermad (14.04.2013)
| ||
|
#5
|
||||
|
||||
|
Цитата:
Вот вариант без Pos и регулярок, который все это дело обрабатывает и помещает в таблицу. Есть только одна проблемка. В ваших данных в строка 11-14 исчез один из параметров. Это видимо надо дополнительно обрабатывать. Код:
procedure TForm8.Button1Click(Sender: TObject);
Var
S: String;
Row,Col: Integer;
SL: TStringList;
begin
StringGrid1.RowCount := Memo1.Lines.Count + 1;
for Row := 0 to Memo1.Lines.Count - 1
do begin
S := Memo1.Lines.Strings[Row];
S := StringReplace(S, 'Message to send :', 'Message_to_send:', [rfReplaceAll]);
S := StringReplace(S, ')', ') ', [rfReplaceAll]);
S := StringReplace(S, ' )', ')', [rfReplaceAll]);
S := StringReplace(S, 'Not all valves fed', 'Not_all_valves_fed', [rfReplaceAll]);
S := StringReplace(S, 'No room in', 'No_room_in', [rfReplaceAll]);
SL := TStringList.Create;
SL.DelimitedText := S;
StringGrid1.ColCount := SL.Count + 1;
for Col := 0 to SL.Count - 1
do StringGrid1.Cells[Col+1,Row+1] := SL.Strings[Col];
SL.Free;
end;
end; |
| Этот пользователь сказал Спасибо Страдалецъ за это полезное сообщение: | ||
cybermad (14.04.2013)
| ||
|
#6
|
|||
|
|||
|
Цитата:
ок! спасибо за наводки! но... подскажите, пожалуйста, регулярку для моего случая... пример от Страдальца работает, но... хочу попробовать на регулярных выражениях. Заранее спасибо!!! |
|
#7
|
||||
|
||||
|
Хотите?) пробуйте! я классную статью подкинул.
|