antoniy7772007 | Дата: Суббота, 19.03.2016, 01:39 | Сообщение # 1 |
Ранг 1
Группа: Пользователи
Сообщений: 1
Награды: 0
Репутация: 0
Статус: Offline
| Есть файл XML. Необходимо программным путем найти все числовые значения после AID= и до </COMMENT>или перед "," и передать их в любой компонент (DBGrid, ListBox, Memo).
Пример файла (часть):
<?xml version="1.0" encoding="Windows-1251"?> <FLK_P> <FNAME>test2356434</FNAME> <FNAME_I>test2356434hsdf;sdf</FNAME_I> <!-- Уведомление об аннулировании реестра --> <PR> <OSHIB>57</OSHIB> <IM_POL>SMO, SMO_OK, SMO_OGRN</IM_POL> <BASE_EL>SLUCH</BASE_EL> <N_ZAP>34565</N_ZAP> <COMMENT>[gtr:376] принадлежность строки не определена, AID=123456</COMMENT> </PR> <PR> <OSHIB>57</OSHIB> <IM_POL>SMO, SMO_OK, SMO_OGRN</IM_POL> <BASE_EL>SLUCH</BASE_EL> <N_ZAP>4533</N_ZAP> <COMMENT>[gtr:374] принадлежность строки не определена, AID=7890123, моментум инновации</COMMENT> </PR>
Пытался использовать функцию pos, но в цикле for to do ищет и добавляет как надо, но вот как обработать "</COMMENT"? Если добавить дополнительную функцию pos он выдает всякий бред. Может кто подскажет, в чем нужна доработка!?
Вот пример одной из процедур, которую я проверял.
procedure TForm1.Button7Click(Sender: TObject); var tmp: string; main: string; n: word; i: integer; f:TextFile; begin main:= Memo1.Lines.Text; for i := 1 to Memo1.Lines.count-1 do begin n:= pos('AID=',main); Delete(main,4,n); n:= pos(',',main); tmp:= copy(main,4,n-4); ListBox1.Items.Add(tmp); end;
Сообщение отредактировал antoniy7772007 - Суббота, 19.03.2016, 03:36 |
|
| |