Показать сообщение отдельно
  #2  
Старый 05.10.2016, 18:23
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Можно распарсить средствами регспы, а можно и самостоятельно, примерно вот так
Код:
var
 listDoc: array of TStrings;
 txtAll: TStrings;
 i, b: integer;
 flg: boolean;
 lit:TListItem;
 begin
   i:= 0;
   b:= 0;
   txtAll:= TStringList.Create;
   txtAll.LoadFromFile('text.txt');
   flg:= false;

   while i < txtAll.Count do
    begin
     if txtAll[i] = 'СекцияДокумент=Платежное поручение' then
      begin
       flg:= true;
       SetLength(listDoc, b+1);
       listDoc[b]:= TStringList.Create;
      end;

   if (flg) and (txtAll[i] = 'КонецДокумента') then
    begin
     flg:= false;
     inc(b);
    end;

   if flg then listDoc[b].Add(txtAll[i]);
   inc(i);
  end;

  for i := 0 to High(listDoc) do
   for b:= 0 to listDoc[i].Count-1 do
    begin
     if Copy(listDoc[i][b],1, 6) = 'Номер='then
      begin
       lit:= ListView1.Items.Add;
       lit.Caption:=Copy(listDoc[i][b],7,Length(listDoc[i][b]));
      end;
      if Copy(listDoc[i][b],1, 5) = 'Дата='then
       lit.SubItems.Add(Copy(listDoc[i][b],6,Length(listDoc[i][b])));
      if Copy(listDoc[i][b],1, 6) = 'Сумма='then
       lit.SubItems.Add(Copy(listDoc[i][b],7,Length(listDoc[i][b])));
      if Copy(listDoc[i][b],1, 12) = 'Получатель1='then
       lit.SubItems.Add(Copy(listDoc[i][b],13,Length(listDoc[i][b])));
      if Copy(listDoc[i][b],1, 19) = 'НазначениеПлатежа1='then
       lit.SubItems.Add(Copy(listDoc[i][b],20,Length(listDoc[i][b])));
    end;
  txtAll.Free;
 end;
Вложения
Тип файла: zip pars1C.zip (3.3 Кбайт, 5 просмотров)
Ответить с цитированием