Einzelnen Beitrag anzeigen

danieleh

Registriert seit: 1. Dez 2005
54 Beiträge
 
#1

array of array aus textfile

  Alt 9. Aug 2009, 14:03
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;
  Mit Zitat antworten Zitat