Einzelnen Beitrag anzeigen

ichbins

Registriert seit: 9. Jul 2005
Ort: Hohenaltheim
1.001 Beiträge
 
Delphi 2005 Personal
 
#10

Re: textbestand einlesen mit 2D array...

  Alt 28. Jan 2006, 12:54
schließe deinen Delphi-Code doch bitte in die Delphi-Tags ein:
[delphi ] CODE [/delphi ] (ohne Leerzeichen)

Zitat:
Delphi-Quellcode:
TkolomArray = array[0..511] of real;
TdataArray = array[0..7] of Tkolomarray;
machs doch so: tdataarray=array[0..7,0..511] of real;
Zitat:
Delphi-Quellcode:
j: integer;
i:integer;
k:integer;
l:integer;
viel kürzer:
i,j,k,l:integer; und formatiere deinen Code doch bitte mit Einrückungen.

nur mal als Tipp: probier readln statt read.

also jetzt nur mal der wichtige Code wie ich ihn formatieren würde:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  i,j,k,l:integer;
begin
  assignfile(mijntext,'open.txt');
  reset(mijntext);
  i:=0;
  j:=0;
  while not(eof(mijntext)) do begin
    read (mijntext, openarray[i,j]);
    for l:=0 to j do begin
      read(mijntext, openarray[i,j]);
      for k:=0 to i do begin
        read (mijntext, openarray[i,j]);
        memo1.lines.add(floattostr(openarray[i,j]));
      end;
    end;
  end;
  closefile(mijntext);
end;
und jetzt, da er lesbar ist, die Verbesserung:

Delphi-Quellcode:
var
  i,j,k:integer;
  t:textfile;
  zeile,acttoread:string;
begin
  assignfile(t,DATEINAME);
  reset(t);
  k:=0;
  while not eof(t) do begin
    readln (t, zeile);
    zeile:=zeile+' '; //Leerzeichen anhängen damit am Schluss die letzte Zahl nicht ignoriert wird
    i:=0;
    acttoread:='';
    for j:=1 to length(zeile) do begin
      if zeile[j]=' then //wenn auf Leerzeichen gestoßen, dann aktuelle Zahl zuende -> Zahl ans Array anhängen
      begin
        zahlenarray[k,i]:=floattostr(acttoread);
        inc(i);
        acttoread:='';
      end else
        acttoread:=acttoread+zeile[j];
    end;
    inc(k);
  end;
  closefile(t);
end;
Michael Enßlin
Ich, der ich weiß, mir einzubilden, dass ich weiß, nichts zu wissen, weiß, dass ich nichts weiß.
Sokrates
  Mit Zitat antworten Zitat