Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi AV - Wo? (https://www.delphipraxis.net/69957-av-wo.html)

fwsp 22. Mai 2006 22:32


AV - Wo?
 
hallo

Ich krieg immer ne AV, weiß net wo...

ich will ne datei auslesen die wie folgt aufgebaut ist:
Code:
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
und zwar will ich die in ein record einlesen:
Delphi-Quellcode:
type
  TProjekt = record
    ID: Integer;
    Name: String;
    Dateien: array of String;
end;
und das in der prozedur:
Delphi-Quellcode:
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;
die prozedur ruf ich so auf:
Delphi-Quellcode:
ProjekteDatei := TStringList.Create;
ProjekteDatei.LoadFromFile(UGlobal.PDir + 'Einstellungen/Projekte.pof');
ULAS.LoadProjectList(ProjekteDatei, TreeViewProjekte, Projekt);
ProjekteDatei.Free;
wo ist der fehler?

Daniel G 22. Mai 2006 22:47

Re: AV - Wo?
 
Hi,

Die Variable "Projekt" ist sicher von Typ "array of TProjekt", oder? Ist das Array denn auch groß genug?

bernau 22. Mai 2006 22:52

Re: AV - Wo?
 
Zuerst einmal ein Schönheitsfehler:

Delphi-Quellcode:
procedure LoadProjectList(Datei: TStrings; var Tree: TTreeView; var Prj: array of TProjekt);
Tree musst du nicht als Var-Parameter angeben. Kannst du Weg lassen oder const angeben.

Hast du die Größe von Prj vorher definiert? Wieviele Items besitzt "Prj".

Zeig doch mal die aufrufende Procedure.


Gerd

Hawkeye219 22. Mai 2006 23:31

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:
SetLength (Prj, Datei.Count);
Gruß Hawkeye

fwsp 23. Mai 2006 08:49

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 10:48 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