Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Beratung und Hilfe Daten in Array seichern und auslesen (https://www.delphipraxis.net/172725-beratung-und-hilfe-daten-array-seichern-und-auslesen.html)

IltisvdT 19. Jan 2013 10:47

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

QuickAndDirty 19. Jan 2013 11:06

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.

mkinzler 19. Jan 2013 11:07

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:
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;
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

Sir Rufo 19. Jan 2013 11:44

AW: Beratung und Hilfe Daten in Array seichern und auslesen
 
Evtl. suchst du so was in der Art

http://www.delphipraxis.net/1081747-post29.html

Furtbichler 19. Jan 2013 12:58

AW: Beratung und Hilfe Daten in Array seichern und auslesen
 
Alternativ den hier (schneller):
http://www.delphipraxis.net/110025-c...v-dateien.html

IltisvdT 19. Jan 2013 13:48

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.

mkinzler 19. Jan 2013 13:59

AW: Beratung und Hilfe Daten in Array seichern und auslesen
 
Sind alle Typen Integer?

IltisvdT 19. Jan 2013 14:16

AW: Beratung und Hilfe Daten in Array seichern und auslesen
 
Ja sind sie.

DeddyH 19. Jan 2013 14:28

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;

Perlsau 19. Jan 2013 14:43

Crossposting kennzeichnen
 
Crosspostings sollten als solche gekennzeichnet werden, damit nicht im einen Forum über Probleme nachgedacht werden muß, die in einem anderen Forum bereits gelöst wurden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:13 Uhr.
Seite 1 von 2  1 2      

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