![]() |
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:
das hab ich mehr oder weniger alleine gemacht (tipps über irc erhalten...)
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; Funktioniert aber nicht!!! :wall: ich hoffe jmd. kann mir helfen |
Re: Mehrdym. Arrays und textdateien(csv)
es gibt hier im forum eine funktion die heisst explode, die könnte dir weiterhelfen!
|
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? |
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:
aufrufst, ist das Array noch nicht gesetzt (hat immer noch eine Größe von [0, 0])
myArr[ndx,x] := detailsl.Strings[x];
Delphi-Quellcode:
Aber was willst den damit machen ?
setlength(myArr, 2);
setlength(myArr[0], 10); setlength(myArr[1], 10); Integer in einen String reinlesen :gruebel: |
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