![]() |
Probleme mit StringList
Hallo
Mein Ziel aus einer Datei eine Stringliste erstellen und diese dann bearbeitet in eine Combobox abfüllen. Dazu habe ich folgende Funktion erstellt:
Delphi-Quellcode:
das funktioniert. Nun aber wenn ich diese List(e) weiterverarbeiten will kommt immer eine Zugriffsverletzung. Keine Ahnung was hier diese Verletzung verursacht.
// StringList abfüllen aus Datei
function StringListFuellen(List: TStringList; Datei:string):boolean; begin List:= TStringList.Create; result:=false; if fileexists(datei) then begin List.LoadFromFile(datei); result:=true; end else begin result:=false; end; List.Free; end; Mein Aufruf (als Beispiel): habs schon auf versch. Varianten probiert (als Text oder als einzelne Items auszulesen etc.)
Delphi-Quellcode:
procedure TfrmUebersicht.Button1Click(Sender: TObject);
var liste:TStringList; begin if StringListFuellen(Liste,getinivalue('StandardValues','IndexPath')+'\'+getinivalue('StandardValues','IndexFile')) = true then begin edtitelsuchen.Items.Text:=liste.Text; end; end; |
Re: Probleme mit StringList
Du erzeugst deine Stringlist in StringListFuellen und gibst sie am Ende wieder frei. Auch kann diese gar nicht außerhalb verfügbar sein da du sie nicht als Var-paramter übergibst.
|
Re: Probleme mit StringList
Guten Morgen,
so sollte es gehen. So weit ich weiß brauch man Objekte nicht als var Parameter übergeben, da in der Parameterlist sowieso nur die Adresse des Objektes steht. Grüße Klaus
Delphi-Quellcode:
Grüße
procedure TfrmUebersicht.Button1Click(Sender: TObject);
var liste:TStringList; begin liste := TStringList.create; if StringListFuellen(Liste,getinivalue('StandardValues','IndexPath')+'\'+getinivalue('StandardValues','IndexFile')) = true then begin edtitelsuchen.Items.Text:=liste.Text; end; liste.free; end; // StringList abfüllen aus Datei function StringListFuellen(List: TStringList; Datei:string):boolean; begin //List:= TStringList.Create; result:=false; if fileexists(datei) then begin List.LoadFromFile(datei); result:=true; end else begin result:=false; end; //List.Free; end; Klaus |
Re: Probleme mit StringList
Vielen dank Klaus für deine Hilfe. Werde mir das jetzt genau anschauen damit ich endlich schnall wie sowas aufgebaut sein muss. Funktionieren tuts schonmal.
Gruss Zitat:
|
Re: Probleme mit StringList
Zitat:
|
Re: Probleme mit StringList
@Thomas
danke wieder etwas gelernt. So geht es also auch:
Delphi-Quellcode:
Grüße
function fillList(var lst:TStringList):boolean;
begin lst := TStringList.create; lst.Add('1'); lst.Add('2'); end; procedure TForm1.Button1Click(Sender: TObject); var sl : TStringList; begin fillList(sl); Memo1.lines.Assign(sl); sl.free; end; Klaus |
Re: Probleme mit StringList
Der Fehler ist wohl inzwischen klar. Du kannst ListBox aber auch direkt füllen.
Delphi-Quellcode:
Oder
// StringList abfüllen aus Datei
function StringListFuellen(List: TStrings; Datei: String): Boolean; begin if fileexists(datei) then begin List.LoadFromFile(Datei); Result:=true; end else begin Result:=false; end; end; procedure TForm1.Button1Click(Sender: TObject); begin if not StringListFuellen(ListBox1.Items, 'c:\abc\def.txt') then MessageDlg('Fehler beim Laden', mtError, [mbOK], 0); end;
Delphi-Quellcode:
// StringList abfüllen aus Datei
function StringListFuellen(List: TStringList; Datei: String): Boolean; begin if fileexists(datei) then begin List.LoadFromFile(Datei); Result:=true; end else begin Result:=false; end; end; procedure TForm1.Button1Click(Sender: TObject); var sl: TStringList; begin sl := TStringList.Create; try if not StringListFuellen(sl, 'c:\abc\def.txt') then MessageDlg('Fehler beim Laden', mtError, [mbOK], 0); finally sl.Free; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:48 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