AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi INIFile.ReadSections führt zum Abstrakten Fehler
Thema durchsuchen
Ansicht
Themen-Optionen

INIFile.ReadSections führt zum Abstrakten Fehler

Ein Thema von gmc616 · begonnen am 16. Okt 2007 · letzter Beitrag vom 16. Jul 2009
Antwort Antwort
Seite 1 von 2  1 2      
gmc616

Registriert seit: 25. Jun 2004
Ort: Jena
627 Beiträge
 
Delphi 10.3 Rio
 
#1

INIFile.ReadSections führt zum Abstrakten Fehler

  Alt 16. Okt 2007, 00:40
Namd DP,

ich glaub ich werd bekloppt!

Könnt ihr mir verraten warum dieser Code zu einem Abstrakten Fehler führt? (BDS2006)

Delphi-Quellcode:

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;
Isses schon so spät, dass ich's nicht sehe??

Danke und Grüße
gmc
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: INIFile.ReadSections führt zum Abstrakten Fehler

  Alt 16. Okt 2007, 05:39
TStrings ist eine abstrakte Klasse:

MySections := TStringList.Create;
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

Re: INIFile.ReadSections führt zum Abstrakten Fehler

  Alt 16. Okt 2007, 08:21
Zitat von mkinzler:
TStrings ist eine abstrakte Klasse
Das heißt deren Methoden sind nicht implementiert, sondern nur virtuell vorhanden und werden erst von den Nachfolge-Klassen mit Leben gefüllt.

PS: Eine Forensuche hätte dir aber auch sagen können, was du da falsch machst.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
gmc616

Registriert seit: 25. Jun 2004
Ort: Jena
627 Beiträge
 
Delphi 10.3 Rio
 
#4

Re: INIFile.ReadSections führt zum Abstrakten Fehler

  Alt 16. Okt 2007, 11:13
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

gmc
  Mit Zitat antworten Zitat
Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#5

Re: INIFile.ReadSections führt zum Abstrakten Fehler

  Alt 16. Okt 2007, 11:46
Und du bist sicher, daß er die INI findet?

TIniFile.Create(ChangeFileExt (Application.ExeName,'.ini')); Ist ja nicht gerade 100%.

Besser

TIniFile.Create(ChangeFileExt(ParamStr(0), '.ini')); Nur aus dem Kopf - müßte stimmen...

Gruß winkel79
Frederik
  Mit Zitat antworten Zitat
Benutzerbild von gsh
gsh

Registriert seit: 24. Okt 2004
1.542 Beiträge
 
Delphi XE Architect
 
#6

Re: INIFile.ReadSections führt zum Abstrakten Fehler

  Alt 16. Okt 2007, 12:05
ne ob Applictation.ExeName oder Paramstr(0) ist egal da es des genau gleich ist.

Teste des einmal so:
Delphi-Quellcode:
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;
wenns nicht geht test mal ob MyIni.ReadString(irgendwas, ..) geht
Alex
"Sage nicht alles, was du weißt, aber wisse alles, was du sagst!" Matthias Claudius
"Wer sich über Kritik ärgert, gibt zu, daß er sie verdient hat." Tacitus
  Mit Zitat antworten Zitat
gmc616

Registriert seit: 25. Jun 2004
Ort: Jena
627 Beiträge
 
Delphi 10.3 Rio
 
#7

Re: INIFile.ReadSections führt zum Abstrakten Fehler

  Alt 16. Okt 2007, 12:22
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.

  Mit Zitat antworten Zitat
Progman

Registriert seit: 31. Aug 2007
Ort: 99974 MHL
695 Beiträge
 
Delphi 10.1 Berlin Starter
 
#8

Re: INIFile.ReadSections führt zum Abstrakten Fehler

  Alt 16. Okt 2007, 12:26
und functioniert ReadSectionValues ?
Ich glaub auch fast, dein Delphi ist kaputt
Karl-Heinz
Populanten von Domizilen mit fragiler, transparenter Aussenstruktur sollten sich von der Translation von gegen Deformierung resistenter Materie distanzieren!
(Wer im Glashaus sitzt sollte nicht mit Steinen werfen)
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#9

Re: INIFile.ReadSections führt zum Abstrakten Fehler

  Alt 16. Okt 2007, 13:05
Wie sieht denn Deine ini aus?

Ich hatte mal den Fall, dass ich sowas in einer ini geschrieben habe.
Zitat:
...
...
[MISC]
Groesse=100 // dies ist die Grösse des Fensters,
die am Anfang gesetzt wird
Titel=Fenster für Optionen // Der Fenstertitel
wird ganz oben angezeigt
...
...
Das ReadInteger und ReadString hat funktioniert, da wurde der "Kommentar" ignoriert.
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.
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Progman

Registriert seit: 31. Aug 2007
Ort: 99974 MHL
695 Beiträge
 
Delphi 10.1 Berlin Starter
 
#10

Re: INIFile.ReadSections führt zum Abstrakten Fehler

  Alt 16. Okt 2007, 13:07
RavenIV: stimmt, das kann zum crash führen.
Kommentare in Ini's nur mit ; am Anfang einer Zeile, das wird akzeptiert.
Karl-Heinz
Populanten von Domizilen mit fragiler, transparenter Aussenstruktur sollten sich von der Translation von gegen Deformierung resistenter Materie distanzieren!
(Wer im Glashaus sitzt sollte nicht mit Steinen werfen)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:27 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