AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Beratung und Hilfe Daten in Array seichern und auslesen
Thema durchsuchen
Ansicht
Themen-Optionen

Beratung und Hilfe Daten in Array seichern und auslesen

Ein Thema von IltisvdT · begonnen am 19. Jan 2013 · letzter Beitrag vom 7. Feb 2013
Antwort Antwort
Seite 1 von 2  1 2      
IltisvdT

Registriert seit: 19. Jan 2013
10 Beiträge
 
#1

Beratung und Hilfe Daten in Array seichern und auslesen

  Alt 19. Jan 2013, 11:47
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
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.930 Beiträge
 
Delphi 12 Athens
 
#2

AW: Beratung und Hilfe Daten in Array seichern und auslesen

  Alt 19. Jan 2013, 12:06
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.
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Beratung und Hilfe Daten in Array seichern und auslesen

  Alt 19. Jan 2013, 12:07
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
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

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

AW: Beratung und Hilfe Daten in Array seichern und auslesen

  Alt 19. Jan 2013, 12:44
Evtl. suchst du so was in der Art

http://www.delphipraxis.net/1081747-post29.html
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
Furtbichler
(Gast)

n/a Beiträge
 
#5

AW: Beratung und Hilfe Daten in Array seichern und auslesen

  Alt 19. Jan 2013, 13:58
Alternativ den hier (schneller):
http://www.delphipraxis.net/110025-c...v-dateien.html
  Mit Zitat antworten Zitat
IltisvdT

Registriert seit: 19. Jan 2013
10 Beiträge
 
#6

AW: Beratung und Hilfe Daten in Array seichern und auslesen

  Alt 19. Jan 2013, 14:48
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.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Beratung und Hilfe Daten in Array seichern und auslesen

  Alt 19. Jan 2013, 14:59
Sind alle Typen Integer?
Markus Kinzler
  Mit Zitat antworten Zitat
IltisvdT

Registriert seit: 19. Jan 2013
10 Beiträge
 
#8

AW: Beratung und Hilfe Daten in Array seichern und auslesen

  Alt 19. Jan 2013, 15:16
Ja sind sie.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#9

AW: Beratung und Hilfe Daten in Array seichern und auslesen

  Alt 19. Jan 2013, 15:28
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;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#10

Crossposting kennzeichnen

  Alt 19. Jan 2013, 15:43
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.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:37 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz