![]() |
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 |
Re: dynamischen Array laden
Wie speicherst du ihn den?
|
Re: dynamischen Array laden
Was für ein Array? Woraus willst du das Laden? Was hat das ganze mit einer TStringList zu tun?
|
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. |
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; |
Re: dynamischen Array laden
Also, wenn es eine TextDatei ist, dann kannst DU sie mit einer Stringlist laden.
Delphi-Quellcode:
Oder du kannst das ganze auch zu Fuß erledigen.
StringList.loadfromFile
Delphi-Quellcode:
oder habe ich da etwas ganz falsch verstanden?
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) 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 |
Re: dynamischen Array laden
Ich würd mal tippen
Delphi-Quellcode:
Denn ein Block besteht doch immer aus 133 Einträgen (0..132)
trunc(slDaten.Count / 133)
|
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; |
Re: dynamischen Array laden
Hallo!
I würds einfach so machen
Delphi-Quellcode:
Damit hasch jetzt in der ersten Zeile der Stringlist die Länge stehen.
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; 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:
auch ausgehen müssten.
slDaten.Count div 133
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. |
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 09:17 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