Servus!
2 kleine Tips für die Zukunft:
1) Was dir bisher keiner gesagt hat: Anstatt deiner "LeerzeichenSchneiden" kannste auch einfach "trim" benutzen.
![Wink](images/smilies/icon_wink.gif)
Die Funktion schneidet sogar vorne und hinten alle Leerzeichen ab.
2) Wenn du den Code etwas formatierst, dann wird er gleich viel übersichtlicher. (Sprich: Jeden Block ein bißchen einrücken, also nach jedem Begin usw.)
Könnte dann also so aussehen:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var sl:TStrings; //Variable für Stringlist definieren
Zeile, Endzeile, Zname, Zvorname, Zklasse: integer;
klassenbez: string ;
begin
sl:=TStringlist.Create; //StringList erzeugen
sl.LoadFromFile('E:\...\schueler5a.txt'); //Die Zeilen einer Datei in eine Stringlist laden
//sl.Add('Hallo'); //eine Zeichenkette ans Ende der Stringlist hinzufügen
Zname := 20; // Der Name geht von Zeichen 1-20 = 20 Zeichen Zeichen 21 = TAB
Zvorname := 22 ; // Der Vorname geht von Zeichen 22-43 = 22 Zeichen Zeichen 44 TAB
Zklasse := 8 ; // Die Klasse geht von 44 bis 51
Endzeile:= sl.count-1 ; // Endzeile
For Zeile:= 3 to Endzeile do
begin
StringGrid1.Cells[1,Zeile-2]:= trim( Copy(sl.strings[Zeile],1,Zname) );
StringGrid1.Cells[2,Zeile-2]:= trim( Copy(sl.strings[Zeile],22,Zvorname) );
klassenbez := trim( Copy(sl.strings[Zeile],45,Zklasse) );
StringGrid1.Cells[4,Zeile-2]:= copy(klassenbez,3,1);
if Copy(klassenbez,0,1) = '0' then
StringGrid1.Cells[3,Zeile-2]:= copy(klassenbez,2,1)
else
StringGrid1.Cells[3,Zeile-2]:= copy(klassenbez,1,2);
end; // end of For
sl.SaveToFile('datei.txt'); //Die Zeichenketten der Stringlist in Datei speichern
sl.free;
end;
Axel Sefranek
A programmer started to cuss, cause getting to sleep was a fuss.
As he lay there in bed, looping round in his head
was: while(!asleep()) ++sheep;