Hi!
Also das automatische einlesen bis Leerzeichen oder Tab funktioniert nur wenn du die read Methode mit einem Integerwert aufruftst. Das funktioniert dann Variablenweise und nicht Zeilenweise. Da du aber sicherlich auch Real-werte in den Dateien drinstehen hast, musst du selbst die Einleseroutine schreiben.
Der Tabulator hat dann nicht den selben ASCII-Wert wie ein Leerzeichen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| var str : String; begin; str := ''; str := str + Chr(9); Showmessage(InttoSTr(Ord(str[1]))); str := ' '; Showmessage(InttoSTr(Ord(str[1]))); end; |
Probier einfach mal beim zeichen-weisen Durchgehen der readline nur Zeichen mit dem Ordinaltyp von Zahlen bzw Komma oder Plus/Minus durchzulotsen und das als String zusammenzufügen.
Wenn du den String nachher per "StrtoFloat" konvertieren willst musst du beachten dass es dort nur Kommata , keine Punkte gibt. Also brauchst du gegebenenfalls noch ne Hilfsfunktion wie:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| Function getreal(strin:String):Real; begin; IF Pos('.',Strin) > 0 then begin; Strin := Copy(Strin,1,Pos('.',Strin)-1) + ',' + Copy(Strin,Pos('.',Strin)+1, length(Strin) - Pos('.',Strin)); end; Zahl2 := StrtoFloat(Strin); end; |
MFG Arno Nym
Moderiert von
raziel: Code- durch Delphi-Tags ersetzt