![]() |
INIFile.ReadSections führt zum Abstrakten Fehler
Namd DP,
ich glaub ich werd bekloppt! Könnt ihr mir verraten warum dieser Code zu einem Abstrakten Fehler führt? (BDS2006)
Delphi-Quellcode:
Isses schon so spät, dass ich's nicht sehe??uses IniFiles; [...] procedure TForm1.Button1Click(Sender: TObject); var MyIni : TIniFile; MySections : TStrings; I: Integer; begin MySections := TStrings.Create; MyIni := TIniFile.Create(ChangeFileExt (Application.ExeName,'.ini')); MyIni.ReadSections(MySections); // <-- Hier knallts !! for I := 0 to MySections.count - 1 do ShowMessage (MySections.Strings[i]); MySections.Free; MyIni.Free; end; Danke und Grüße gmc |
Re: INIFile.ReadSections führt zum Abstrakten Fehler
TStrings ist eine abstrakte Klasse:
Delphi-Quellcode:
MySections := TStringList.Create;
|
Re: INIFile.ReadSections führt zum Abstrakten Fehler
Zitat:
PS: Eine Forensuche hätte dir aber auch sagen können, was du da falsch machst. |
Re: INIFile.ReadSections führt zum Abstrakten Fehler
Okay. TStrings ... abstrakte Klasse ... kapiert!
Aber ich werd doch bekloppt! Selbst wenn ich TStrings zu TStringList ändere, knallt der Code in der besagten Zeile. Zwar nicht mit einem Abstrakten Fehler sondern mit einer Schutzverletzung. Da ich die Schutzverletzung für einen Fehler meinerseits hielt, habe ich es mit TStrings probiert und der Abstrakte Fehler erschien mir "glaubwürdiger". Deshalb der Post. Jetzt hab ich das ganze mit Delphi7 und TStringList probiert, da funktionierts. Mit BDS2006 bekomme ich die Schutzverletzung. Datt will mir nicht in den Schädel :wall: :hi: gmc |
Re: INIFile.ReadSections führt zum Abstrakten Fehler
Und du bist sicher, daß er die INI findet?
Delphi-Quellcode:
Ist ja nicht gerade 100%.
TIniFile.Create(ChangeFileExt (Application.ExeName,'.ini'));
Besser
Delphi-Quellcode:
Nur aus dem Kopf - müßte stimmen...
TIniFile.Create(ChangeFileExt(ParamStr(0), '.ini'));
Gruß winkel79 |
Re: INIFile.ReadSections führt zum Abstrakten Fehler
ne ob Applictation.ExeName oder Paramstr(0) ist egal da es des genau gleich ist.
Teste des einmal so:
Delphi-Quellcode:
wenns nicht geht test mal ob MyIni.ReadString(irgendwas, ..) geht
procedure TForm1.Button1Click(Sender: TObject);
var MyIni : TIniFile; MySections : TStringList; I: Integer; begin MySections := TStringList.Create; MyIni := TIniFile.Create(ChangeFileExt(Application.ExeName,'.ini')); MyIni.ReadSections(MySections); // <-- Hier knallts !! for I := 0 to MySections.count - 1 do begin ShowMessage(MySections.Items[i]); end; MySections.Free; MyIni.Free; end; |
Re: INIFile.ReadSections führt zum Abstrakten Fehler
Genau das ist auch mein Code.
Es knallt in besagter Zeile. MyIni.ReadString (...) funktioniert, auch das Lesen von Bool, Integer usw. sowie das Schreiben. Nur das Lesen der Sections macht Probleme. Daher der Verdacht, dass es an den TStrings liegt. Aber das haben wir ja geklärt. Irgendwo hier im Forum hab ich eine Alternative zum Lesen der INI-Sections gefunden, aber das ist ja nicht Sinn der Sache. So langsam glaub ich auch mein BDS hat ne Macke, denn auch die IDE läßt sich nicht korrekt beenden (Schutzverletzung), obwohl der Rechner an sich sehr stabil läuft. :evil: :gruebel: |
Re: INIFile.ReadSections führt zum Abstrakten Fehler
und functioniert ReadSectionValues ?
Ich glaub auch fast, dein Delphi ist kaputt ;) |
Re: INIFile.ReadSections führt zum Abstrakten Fehler
Wie sieht denn Deine ini aus?
Ich hatte mal den Fall, dass ich sowas in einer ini geschrieben habe. Zitat:
Aber das ReadSections hat nicht wollen und das Programm ist abgeschmiert mitsamt der Delphi7-IDE. Dabei hat er sich am Zeilenumbruch gestört, vermutlich beim Integer-Wert. Nachdem ich die "Kommentare" alle entfernt habe, ist es dann gelaufen. |
Re: INIFile.ReadSections führt zum Abstrakten Fehler
RavenIV: stimmt, das kann zum crash führen.
Kommentare in Ini's nur mit ; am Anfang einer Zeile, das wird akzeptiert. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:39 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