Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi dynamischen Array laden (https://www.delphipraxis.net/80052-dynamischen-array-laden.html)

Larky 2. Nov 2006 09:21


dynamischen Array laden
 
Hallo Zusammen!
Bin ganz neu hier, habe nämlich keine Delphi-Hilfe( obwohl ichs legal runtergeladen habe) deswegen musste ich bisher also alle KLeinigkeiten hier nachlesen! Soweit auch kein Problem nur dass ich jetzt dabei bin meinen dynamischen Array zu speichern! Soweit klappt das ja auch der speichert das dann als TStringList!
Nur da ich ja nicht weiß wie groß mein Array ist, weiß ich auch nicht wie ich den laden soll!!!

Bitte bitte brauche gaanz schnell hilfe da mein prog am Freitag fertig sein sollte!
Danke schon mal im vorraus
Grüße Larky

mkinzler 2. Nov 2006 09:30

Re: dynamischen Array laden
 
Wie speicherst du ihn den?

3_of_8 2. Nov 2006 09:31

Re: dynamischen Array laden
 
Was für ein Array? Woraus willst du das Laden? Was hat das ganze mit einer TStringList zu tun?

fwsp 2. Nov 2006 09:33

Re: dynamischen Array laden
 
welche delphi-version hast du denn, das da gar keine hilfe drin sein sollte (noch nicht mal ne schlechte...).
zeig doch mal ein bisschen code.

Larky 2. Nov 2006 10:05

Re: dynamischen Array laden
 
ich benutze Turbo Delphi, da wir das von der BA halt bekommen haben!
Das ist nen Terminkalenderprogramm für ne Arztpraxis
das heißt ich schreibe alle Termine in einen array of array of String!
die zeilen anzahl ist halt immeer 133 (erste Zeile für den SChlüssel zum suchen und so; und die restlichen halt für die Uhrzeit nen im 5 Minuten Takt) Die Spalten anzahl richtet sich halt nach dem Benutzer für jeden Tag pro Therapeut wird eine neue Spalte erzeugt!

Als ich mich zum Thema Speichern und Laden umgeschaut hab hab ich halt ne Prozedur gefunden die das als TStringList speichert!!

Also hier meine speicher prozedur

procedure TFStartseite.speichernClick(Sender: TObject);
var i, j: integer;
slDaten: TStringList;
begin
slDaten := TStringList.Create;
for i := 0 to high(Oberarray) do
for j := 0 to 132 do
slDaten.Add((oberarray[i, j]));
slDaten.SaveToFile('termine');
slDaten.Free;
end;


das klappt auch so weit super!!

hier jetzt die Laden Prozedur:

procedure TFStartseite.LadenClick(Sender: TObject);
var
i, j, Count: integer;
slDaten: TStringList;

begin
slDaten := TStringList.Create;
slDaten.LoadFromFile('termine');
Count := 0;
for i := 0 to (???) do <-- hier ist das Problem weil ich nicht weiß wie groß die Liste ist!!
for j := 0 to 132 do
begin
Oberarray[i, j] :=(slDaten[count]);
inc(Count);
end;
slDaten.Free;
end;

Klaus01 2. Nov 2006 10:07

Re: dynamischen Array laden
 
Also, wenn es eine TextDatei ist, dann kannst DU sie mit einer Stringlist laden.
Delphi-Quellcode:
StringList.loadfromFile
Oder du kannst das ganze auch zu Fuß erledigen.

Delphi-Quellcode:
Datei: TextFile;
einZeile:String;

AssignFile(Datei,'Da wo Deine Datei liegt und wie sie heißt');
Reset(Datei);
While not eof(Datei) do
begin
  Readln(datei,eineZeile);
end;
CloseFile(datei)
oder habe ich da etwas ganz falsch verstanden?

Edit: for i := 0 to SlDaten.count -1 do

Edit2: kannst Du vielleicht mal eine Datei anhängen, ich kann mir nicht vorstellen wie die so ausschaut.

Grüße
Klaus

Union 2. Nov 2006 10:09

Re: dynamischen Array laden
 
Ich würd mal tippen
Delphi-Quellcode:
trunc(slDaten.Count / 133)
Denn ein Block besteht doch immer aus 133 Einträgen (0..132)

ibp 2. Nov 2006 10:12

Re: dynamischen Array laden
 
Delphi-Quellcode:
procedure TFStartseite.LadenClick(Sender: TObject);
var
  i, j: integer;
  slDaten: TStringList;

begin
  slDaten := TStringList.Create;
  slDaten.LoadFromFile('termine');
  for i := 0 to slDaten.count-1 do  <-- hier ist die lösung!!!!
  begin
    for j := 0 to 132 do
    begin
      Oberarray[i, j] :=slDaten[i];
    end;
  end;
  slDaten.Free;
end;

c64ranni 2. Nov 2006 10:20

Re: dynamischen Array laden
 
Hallo!
I würds einfach so machen
Delphi-Quellcode:
procedure Speichern(Sender: TObject);
var i, j: integer;
slDaten: TStringList;
begin
slDaten := TStringList.Create;
slDaten.Add(InttoStr(HIGH(Oberarray)=);
for i := 0 to high(Oberarray) do
for j := 0 to 132 do
slDaten.Add((oberarray[i, j]));
slDaten.SaveToFile('termine');
slDaten.Free;
end;
Damit hasch jetzt in der ersten Zeile der Stringlist die Länge stehen.
Beim Laden kannst die die Erste Zeile auslesen und dann hast den Count.
Aber ich schätze mal, dass es sich mit dem
Delphi-Quellcode:
slDaten.Count div 133
auch ausgehen müssten.


edit: Sorry hab das INttoStr vergessen.
Wenn du ein dynamisches Array hast, dann ist die Laderoutine von dir aber noch nicht fertig.
Du musst noch die Länge des dynamischen Arrays festelgen.

Larky 2. Nov 2006 10:22

Re: dynamischen Array laden
 
ja aber die Frage ist wie ich das in meinen array reinbekomme !

HAb es jetzt wie folgt gelöst:

var
i, j, Count: integer;
slDaten: TStringList;
Laengetxt:real;

begin
slDaten := TStringList.Create;
slDaten.LoadFromFile('terminehedrich');
Count := 0;
Edit1.text:=inttostr (sldaten.Count);
Laengetxt:=sldaten.count/133;
for i := 0 to round (Laengetxt) do
for j := 0 to 132 do
begin
Setlength (Oberarray,i+1);
Oberarray[i, j] :=(slDaten[count]);
inc(Count);
end;
slDaten.Free;
end;


Problem nur der gibt mir nen Fehler aus das das Listenmaximum (133) überschritten wurde aber das kann doch gar nicht sein da meine for-SChleife nur bis 132 geht!! Ich krieg hier langsam echt nen Anfall!! AGGRESSIONEN!!!!!


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:45 Uhr.
Seite 1 von 2  1 2      

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