Das Einfachste dürfte ein Record oder eine Klasse sein, die die zu füllenden Felder beinhaltet. Durch den Einsatz von Copy kannst Du diese dann der Reihe nach befüllen. Ich bin gerade unter Linux unterwegs, aber ich könnte das ja mal schnell mit Lazarus probieren.
[edit] So, hier mal eine "Schmalspurversion" mit einer ListView (vsReport):
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var sl: TStringList;
i: integer;
s: string;
Item: TListItem;
begin
sl := TStringList.Create;
try
sl.LoadFromFile(Dateiname);
for i := 0 to sl.Count - 1 do
begin
if Length(sl[i]) < 3 then break;
s := sl[i];
Delete(s,1,8); //die ersten 8 Stellen werden nicht benutzt
Item := ListView1.Items.Add;
Item.Caption := Copy(s,1,4); //Kuh-Nr. (Stelle 1 bis 4)
Item.SubItems.Add(Copy(s,5,4));//Transponder (Stelle 5 bis 8)
end;
finally
sl.Free;
end;
end;
[/edit]