Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Daten in Arrays speichern? (https://www.delphipraxis.net/123941-daten-arrays-speichern.html)

Darko 11. Nov 2008 19:27


Daten in Arrays speichern?
 
Hallo Leute!
Ich denke, dass es nun Zeit ist für Arrays. :)
Ich will Daten bestimmte Daten später erneut abrufen können. Diese muss ich irgendwo zwischenspeichern. Da ich dafür schlecht jedes mal eine neue Variable auf machen kann, denke ich, dass hier Arrays wohl angebracht wären. Da ich aber noch nie damit gearbeitet habe, steh ich grad etwas aufm Schlauch.

Delphi-Quellcode:
 if (Pos('*',QuAbwesend.FieldByName('NAME').AsString)<>0) then begin
  SetLength(abteilung_abw,1);
  SetLength(stunden_abteilung_abw,1);
  SetLength(grund_abteilung_abw,1);

  abteilung_abw[iAbt_Abw] := QuAbwesend.FieldByName('NAME').AsString;
  stunden_abteilung_abw[iAbt_Abw] := QuAbwesend.FieldByName('STUNDEN').AsString;
  grund_abteilung_abw[iAbt_Abw] := QuAbwesend.FieldByName('GRUND').AsString;

  Inc(iAbt_Abw);
 end;

Bei diesem Code bekomme ich einen Zugriffsfehler, nur habe ich gerade keine Ahnung warum, da mir Arrays total fremd sind. Ich habe die 3 Arrays auch einfach auf gut Glück als Array of String deklariert, is das richtig?

[edit=SirThornberry]Titel korrigiert - Mfg, SirThornberry[/edit]

inherited 11. Nov 2008 19:32

Re: Datan in Arrays speichern?
 
was ist denn iAbt_Abw?
Du setzt die Länge jedesmal auf 1, willst es aber vermutlich um 1 erhöhen. Dan müsstest du stattdessen length(MyArray)+1 verwenden.

Darko 11. Nov 2008 20:07

Re: Datan in Arrays speichern?
 
Hallo,

iAbt_Abw sollte ein interner Zähler sein, wie lang dieser Array nun ist. Vor der Prozedur wird dieser Wert auf 0 gesetzt.

Darko 11. Nov 2008 20:13

Re: Datan in Arrays speichern?
 
Vielleicht liegt hier ja auch der Fehler (es steht noch irgendwas von Lesen in der Fehlermeldung und eine tolle Adresse :?):

Delphi-Quellcode:
 if NOT (iAbt_Abw=0) then begin
  WriteLn(Datei,'<tr>');
  WriteLn(Datei,'<td width="33%">Abteilung</td>');
  WriteLn(Datei,'<td width="33%">Stunden</td>');
  WriteLn(Datei,'<td width="34%">Grund</td>');
  WriteLn(Datei,'</tr>');

  for iAbt_Abw_Druck:=0 to iAbt_Abw do begin
    WriteLn(Datei,'<tr>');
    WriteLn(Datei,'<td width="33%">'+abteilung_abw[iAbt_Abw_Druck]+'</td>');
    WriteLn(Datei,'<td width="33%">'+stunden_abt_abw[iAbt_Abw_Druck]+'</td>');
    WriteLn(Datei,'<td width="34%">'+grund_abt_abw[iAbt_Abw_Druck]+'</td>');
    WriteLn(Datei,'</tr>');
  end;
 end;

mkinzler 11. Nov 2008 20:31

Re: Datan in Arrays speichern?
 
Vielleicht sollte es besser
Delphi-Quellcode:
  for iAbt_Abw_Druck:=0 to iAbt_Abw-1 do begin
heissen€


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:02 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