Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Mehrdym. Arrays und textdateien(csv) (https://www.delphipraxis.net/31911-mehrdym-arrays-und-textdateien-csv.html)

Methi 15. Okt 2004 14:33


Mehrdym. Arrays und textdateien(csv)
 
Hallo,
ich möchte eine Textdatei einlesen, die so aufgebaut ist:

1,2,3,4
6,7,8,9
...

das Array soltle dann folgendermaßen aussehen:
a[0,0] = 1
a[0,1] = 2
a[0,2] = 3
a[0,3] = 4

a[1,0] = 6
a[1,1] = 7
a[1,2] = 8
a[1,3] = 9

Also für jede zeile der "erste" Index, für jedes Element der Zeile der "zweite" Index.
Mein problem ist nur, dass ich nicht soviel erfahrung damit habe und alle meine versuche gescheitert sind. Hier ein versuch:

Delphi-Quellcode:
procedure TForm1.readDataIn();
var
  myArr : Array of Array of String;
  mastersl : TStringList;
  detailsl : TStringList;
  ndx , x   : Integer;
begin
  mastersl := TStringList.Create; // Master StringList
  detailsl := TStringList.Create; // Detail StringList
  try
    detailsl.Delimiter := ',';  // Trennzeichen der Einträge pro Zeile
    mastersl.LoadFromFile('band.txt');
    for ndx := 0 to Pred (mastersl.Count) do
    begin
      detailsl.Clear;
      detailsl.DelimitedText := mastersl.Strings[ndx];
      for x := 0 to Pred(detailsl.Count) do
      begin
       myArr[ndx,x] := detailsl.Strings[x];
      end;
    end;
  finally
    FreeAndNil (mastersl);
    FreeAndNil (detailsl);
  end;
end;
das hab ich mehr oder weniger alleine gemacht (tipps über irc erhalten...)
Funktioniert aber nicht!!!
:wall:
ich hoffe jmd. kann mir helfen

ibp 15. Okt 2004 14:49

Re: Mehrdym. Arrays und textdateien(csv)
 
es gibt hier im forum eine funktion die heisst explode, die könnte dir weiterhelfen!

Methi 15. Okt 2004 19:08

Re: Mehrdym. Arrays und textdateien(csv)
 
nru wie bekomm ich jetzt explode und meine arrays zusammen? explode gibt ja nur eindimensionales array zurück... das bringt mir für mein prog nix...wäre nett, wenn du mir da etwas weiterhelfen könntest...wie muss man die funktion umschreiben?
ein abluaf sähe ja so aus:
1. 1.zeile einlesen (ok)
2. mit explode bearbeiten
gibt mir ein array mit den werten der ersten zeile zurück (ok?)
3. nun müsste an irgendwie den 1. index des array erhöhen (?)
4. nächste zeile einlesen
5. wie 2 (?)

wäre so das vorgehen richtig? wie bringe ich explode bei, dass ich ein 2 dim. array habe?

Gruber_Hans_12345 15. Okt 2004 19:16

Re: Mehrdym. Arrays und textdateien(csv)
 
Du MUßT in beiden Fällen das Array initiaisiern mit setlength !
Da sonst das Array ungültig ist

wenn du
Delphi-Quellcode:
myArr[ndx,x] := detailsl.Strings[x];
aufrufst, ist das Array noch nicht gesetzt (hat immer noch eine Größe von [0, 0])

Delphi-Quellcode:
setlength(myArr, 2);
setlength(myArr[0], 10);
setlength(myArr[1], 10);
Aber was willst den damit machen ?

Integer in einen String reinlesen :gruebel:

Methi 15. Okt 2004 21:58

Re: Mehrdym. Arrays und textdateien(csv)
 
setlength schön und gut, aber ich weiß ja nciht, wieviele elemente nachher das array hat... wie mach ich das dann?

zu den strings: die spätere verarbeitung benötigt strings, ich will nicht mit den zahlen rechnen...ausserdem könnte es unter ganz gerigen umständen auch sein, dass in der TXT auch buchstaben vorkommen... :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:41 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz