Einzelnen Beitrag anzeigen

Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#11

Re: textbestand einlesen mit 2D array...

  Alt 28. Jan 2006, 13:36
Zitat von student:
hallo nochmal,
vielen dank für die vielen und schnellen antworten. wir sind jetzt so weit, dass jede 3. zahl aus dem bestand eingelesen wird, keine ahnung warum. leider immer noch nciht spalte für spalte. einlesen müssen wir das ganze aus einer textfile...wäre toll, wenn vielleicht jemand eine idee hätte
Also m.E. waren hier schon genug Ideen ...
Aber in dem Code sehe ich irgendwie keine Umsetzung
Zitat von student:
...hier mal ein auszug unseres codes:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
j: integer;
i:integer;
k:integer;
l:integer;

begin
  assignfile(mijntext,'open.txt');
  reset(mijntext);
  i:=0; // das ist ja wohl unfug s.u.
  j:=0; // dito
  while not(eof(mijntext)) do begin
    read (mijntext, openarray[i,j]); // und immer in openarray[0,0] ???

    for l:=0 to j do begin // also wir zählen immer von 0 bis 0, sehr logisch
      read(mijntext, openarray[i,j]); // und hier schon wieder ???

      for k:=0 to i do begin
        read (mijntext, openarray[i,j]); // und da auch ... wofür?

        memo1.lines.add(floattostr(openarray[i,j]));
      end;
    end;
  end;
  closefile(mijntext);
end;

end.
vielen dank nochmal und ein schönes wochenende allerseits....
Also wenn der Code was vernünftiges liefert, dann heisse ich ab sofort egon.

Aber versuch es mal damit ... (die Umwandlung von String in Float fehlt, genauso wie die Zuordnung zum Array, was aber keine Probleme mehr bereiten sollte )
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  iFile : TextFile;
  iZeile : string;
  iWerte : TStringList;
  i, // Zähler für die Werte pro Zeile
  z : integer; // Zeilenzähler
begin
  // Die brauchen wir zum Umwandeln
  iWerte := TStringList.Create;
  try
    iWerte.Delimiter := #32; // Trennzeichen zwischen den Werten
    AssignFile( iFile, 'Daten.txt' );
    ReSet( iFile );
    z := 0;
    while not Eof( iFile ) // bis zum bitteren Ende
    do begin
      ReadLn( iFile, iZeile ); // Zeile lesen
      inc( z );
      // Jetzt kommt der Trick, die Stringlist interpretiert den übergebenen String
      // und trennt an dem eingestellten Trennzeichen die Zeile in mehrere Strings!
      iWerte.DelimitedText := iZeile;
      // Und diese kann man jetzt abfragen
      for i := 0 to Pred( iWerte.Count )
      do
        Memo1.Lines.Add( // Ausgabe im MemoFeld
          Format( // Damit sieht das dann schöner aus
            'z:%d s:%s',
            [ z,
              iWerte.Strings[ i ] // Der Wert als String
            ]
          )
        );
    end;
    CloseFile( iFile );
  finally
    // Und ins Nirwana schicken
    iWerte.Free;
  end;
end;
und wech ...
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat