![]() |
Beratung und Hilfe Daten in Array seichern und auslesen
Hallo,
ich möchte folgendes machen und bräuchte dabei Beratung, wie es am besten ginge und dann vielleicht auch Hilfe, damit es geht. Ich habe eigentlich nicht viel mit Programmieren zu tun, deswegen verzeiht meinen Anflug an Unwissenheit. Ich habe zwei Arrays, ein eindimensionales und ein zweidimensionales. Diese möchte ich in einer Datei abspeichern und zwar so, dass die Werte des eindimensionalen die erste Zeile ausfüllen und die Werte des zweidimensionalen die nächsten Zeilen. Desweiteren möchte ich dann die Arrays wieder aus der Datei herstellen, sodass ich also eine Datei erstellen mit vielen Daten und dann macht mein Programm daraus dann eben die zwei Arrays mit denen es weiterarbeitet. Ich habe es schon probiert die Arrays in ein Textfile zu schreiben, das klappt auch, aber das Einlesen ist dann aufwendig, denn eigentlich soll man die Datei mit einem Tabellkalkulationsprogramm betrachten und erstellen können. Hab das jetzt so, dass ich ne CSV erstelle mit Semikolon getrennt. Das Problem ist dann beim einlesen, dass mit ja die Semikolons nicht im Array haben möchte usw. Welchen Dateityp schlagt ihr für die Datei vor? Und wie macht man das am besten mit schreiben und lesen?! Ich hoffe echt auf euch. Danke |
AW: Beratung und Hilfe Daten in Array seichern und auslesen
Classes.ExtractStrings funktioniert für TStringlist ( Memo1.Lines, usw... also alle TStrings typen)
Ansonnsten musst du dir eine Methode selbst bauen. Meist kann man die DelimitedText Funktion von TStringlist dafür gebrauchen. In neuen Delphi Versionen sollte man dann auch "StrictDelimted" setzen. |
AW: Beratung und Hilfe Daten in Array seichern und auslesen
Hier würde sich die Stringliste anbieten. Bzw. 2 deine Für die Zeilen und eine für die Spalten der Zeile (Trenner ;)
Delphi-Quellcode:
Der Code ist stark vereinfacht und einfach so hingetippt. Es wird davon ausgegangen, dass im Array Strings sind. Ggf müsste der Inhalt nach String gewandelt werden
var
sl1, sl2: TStrings; i, j: integer; ... begin try sl1 := TStringList.Create; sl2 := TStringList.Create; sl2.Delimiter := ';'; for i := Low( Array1) to High (Array1) do sl2.add( Array1[i]); sl1.add( sl2.DelimitedText); for j = Low( Array2) to High( Array2) do begin sl2.text := ''; for i := Low( Array2[j]) to High (Array2[j]) do sl2.add( Array2[j][i]); sl1.add( sl2.DelimitedText); end; sl1.SaveToFile( <Dateiname>); finally sl2.Free; sl1.Free; end; end; |
AW: Beratung und Hilfe Daten in Array seichern und auslesen
|
AW: Beratung und Hilfe Daten in Array seichern und auslesen
|
AW: Beratung und Hilfe Daten in Array seichern und auslesen
Vielen Dank erstmal. Gehen wir jetzt also davon auch habe eine csv die so aussieht:
1;2;3; 2;2;2; 3;5;4; jetzt möchte ich die ja derart einlesen dass ich folgendes kriege: a[1]=1,a[2]=2.. b[1,1]=2,b[1,2]=2... b[2,1]=3.... Jetzt weiß ich aber bei dem csv reader nicht wie ich ihm sagen, dass er Semikolon nicht mit liest. Ausserdem kann die Anzahl der Werte in der csv variieren. Es ist übrigens das erste mal das ich mit delphi programmiere und vorher hab ich an der Uni ein Semester lang ein bisschen c gemacht.. Also ich hab wirklich wenig Ahnung. Umso dankbarer bin ich euch für eure Hilfe. |
AW: Beratung und Hilfe Daten in Array seichern und auslesen
Sind alle Typen Integer?
|
AW: Beratung und Hilfe Daten in Array seichern und auslesen
Ja sind sie.
|
AW: Beratung und Hilfe Daten in Array seichern und auslesen
Wenn Du die einzelne Zeile schon aufgesplittet hast wie oben beschrieben, musst Du nur noch die einzelnen Elemente umwandeln und in das Array überführen. Ungetestet und ohne Fehlerbehandlung:
Delphi-Quellcode:
type
TIntArray = array of integer; procedure TStringsToIntArray(Src: TStrings; var Dest: TIntArray); var i: integer; begin SetLength(Dest, Src.Count); for i := 0 to Src.Count - 1 do Dest[i] := StrToInt(Src[i]); end; |
Crossposting kennzeichnen
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:13 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