Hallo
Gemäss
Posting (Beitrag #25)
möchte ich den Inhalt eines tab-getrenntes Textfiles (Datetime, Messwert1, Messwert2, MesswertN) in ein Array (of Double) pipen
Es klappt ganz gut die Werte (der Spalten) in je ein separates Array zu schreiben. Jedoch wäre es eleganter alles in ein einziges zweidimensionales Array zu schreiben.
Und da hab ich einen Knopf. Vielleicht hat jemand eine Idee?
Zusätzlich: wie kann man Null-Werte abfangen (bei yi[i]:= StrToFloat)? "Try ... except ... end" scheint nicht zu funktionieren.
hier meine Prozedur:
Delphi-Quellcode:
procedure TDemoForm.Button2Click(Sender: TObject);
var
i: integer;
List1,List2 : TStringList;
xi,yi : array of double;
xyi: array of array of double;
t : TDateTime;
MySettings: TFormatSettings;
begin
GetLocaleFormatSettings(GetUserDefaultLCID, MySettings);
MySettings.DateSeparator := '.';
MySettings.TimeSeparator := ':';
MySettings.ShortDateFormat := 'dd.mm.yyyy';
MySettings.ShortTimeFormat := 'hh:nn:ss';
List1:=TStringList.Create;
try
List1.LoadFromFile('TabSeparated.txt');
List2:=explode(#9,List1[i]);
// showmessage(inttostr(List1.Count-1));
setLength(xi,List1.Count);
setLength(yi,List1.Count);
setlength(xyi,List1.Count,List2.Count);
for i:=0 to List1.Count-1 do
begin
List2:=explode(#9,List1[i]);
ListBox1.Items.Insert(i, List2[0]);
ListBox2.Items.Insert(i, List2[1]);
ListBox3.Items.Insert(i, List2[2]);
ListBox4.Items.Insert(i, List2[3]);
xi[i]:= StrToDateTime(List2[0], MySettings);
yi[i]:= StrToFloat(List2[3]);
// xyi ??
List2.free;
end;
finally
List1.Free;
end;
// showmessage(DateTimeToStr(yi[5])) ;
// showmessage(floattostr(yi[5])) ;
end;