|
|
Регистрация | << Правила форума >> | 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 помогут тебе в парсинге)
Поживу - увижу, Доживу - узнаю, Выживу - учту. [P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
|
#3
|
||||
|
||||
Используй регэкспы (с).
Я задолбался уже писать эту фразу. — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
Этот пользователь сказал Спасибо 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
|
||||
|
||||
Хотите?) пробуйте! я классную статью подкинул.
|