![]() |
AV - Wo?
hallo
Ich krieg immer ne AV, weiß net wo... ich will ne datei auslesen die wie folgt aufgebaut ist:
Code:
und zwar will ich die in ein record einlesen:
123 AbiTools
156 Musik.Suite 156 Musik.Suite 123 AbiTools 156 Musik.Suite 156 Musik.Suite 123 AbiTools 156 Musik.Suite 156 Musik.Suite 123 AbiTools 156 Musik.Suite 156 Musik.Suite 123 AbiTools
Delphi-Quellcode:
und das in der prozedur:
type
TProjekt = record ID: Integer; Name: String; Dateien: array of String; end;
Delphi-Quellcode:
die prozedur ruf ich so auf:
procedure LoadProjectList(Datei: TStrings; var Tree: TTreeView;
var Prj: array of TProjekt); var i: Integer; Root: TTreeNode; begin Root := Tree.Items.AddFirst(nil, 'Projekte'); for i := 0 to (Datei.Count - 1) do begin Prj[i].ID := StrToInt(Trim(Copy(Datei[i], 1, 5))); Prj[i].Name := Copy(Datei[i], 6, (Length(Datei[i]) - 5)); Tree.Items.AddChild(Root, Prj[i].Name); end; end;
Delphi-Quellcode:
wo ist der fehler?
ProjekteDatei := TStringList.Create;
ProjekteDatei.LoadFromFile(UGlobal.PDir + 'Einstellungen/Projekte.pof'); ULAS.LoadProjectList(ProjekteDatei, TreeViewProjekte, Projekt); ProjekteDatei.Free; |
Re: AV - Wo?
Hi,
Die Variable "Projekt" ist sicher von Typ "array of TProjekt", oder? Ist das Array denn auch groß genug? |
Re: AV - Wo?
Zuerst einmal ein Schönheitsfehler:
Delphi-Quellcode:
Tree musst du nicht als Var-Parameter angeben. Kannst du Weg lassen oder const angeben.
procedure LoadProjectList(Datei: TStrings; var Tree: TTreeView; var Prj: array of TProjekt);
Hast du die Größe von Prj vorher definiert? Wieviele Items besitzt "Prj". Zeig doch mal die aufrufende Procedure. Gerd |
Re: AV - Wo?
Hallo Friedrich,
Daniel und Gerd haben es schon angedeutet: das Array Prj ist wahrscheinlich nicht dimensioniert. Da du die benötigte Größe erst nach dem Laden der Datei "Projekte.pof" kennst, solltest du die Dimensionierung vielleicht in der Prozedur vornehmen:
Delphi-Quellcode:
Gruß Hawkeye
SetLength (Prj, Datei.Count);
|
Re: AV - Wo?
es ist des lernens kein ende, obwohl ich darauf auch alleine hätte kommen müssen.
trotzdem danke. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:20 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