05.10.2016, 18:23
|
|
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;
|