Wahrscheinlich einfaches Problem - Steh aufm Schlauch!

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
Antworten
debeye
Beiträge: 12
Registriert: Mi 20. Mär 2013, 23:10

Wahrscheinlich einfaches Problem - Steh aufm Schlauch!

Beitrag von debeye »

Hallo Leute,

vor sich hin programmieren könnte so lustig sein, wenn es da nicht diese lästige Probleme gäbe an denen man sich festbeißt. Hier ist eins davon:

Hier ist die Deklaration. Unter anderem von Dateiinhalt...

Code: Alles auswählen

private
  Dateiinhalt: TStringlist;
  procedure open();
public
  constructor create();
  procedure saveAt(section:String; content:TStringlist);
  function loadFrom (section:String):TStringlist;    
Der Constructor:

Code: Alles auswählen

 
constructor textfilehanler.create();
begin
      Dateiinhalt:=TStringList.Create;
end;
 
Da wo das Ding mit Inhalt gefüttert wird (whiteboard.txt liegt im selben Ordner, wie das Projekt)

Code: Alles auswählen

 
procedure textfilehanler.open();
begin
  Dateiinhalt.loadfromfile('whiteboard.txt');
end;
 
Und dann hier der Aufruf:

Code: Alles auswählen

function textfilehanler.loadFrom(section: String): TStringlist;
var relevanterContent: TStringlist; zeile,i:integer;
begin
  relevanterContent:=Tstringlist.Create();
  zeile:=0;
  open();
  for i:=0 to Dateiinhalt.count-1 do
  begin
    if Dateiinhalt[i] = section then
     begin  ...
Der Code compiliert, sobald es aber zum besagten Abschnit kommt...: Project1.exe hat die Exception <<External SIGSEGV>> ausgelöst.

Ein ShowMessage als erste Zeile im constructor wird schon gar nicht ausgeführt. Setze ich das ShowMessage in die erste Zeile der Methode open(), dann wird es noch vor dem Absturz ausgeführt.

Wo liegt mein Denkfehler?? Hat jemand spontan nen Geistesblitz?

Vielen Dank!

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: Wahrscheinlich einfaches Problem - Steh aufm Schlauch!

Beitrag von Christian »

Meine Glaskugel sagt das

Datei : textfilehanler;

nicht ausreicht

und du auch noch

Datei := textfilehanler.Create();

machen musst, diesen relavanten abschnitt enthälst du uns aber vor
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Benutzeravatar
theo
Beiträge: 10871
Registriert: Mo 11. Sep 2006, 19:01

Re: Wahrscheinlich einfaches Problem - Steh aufm Schlauch!

Beitrag von theo »

constructor Create; override;

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: Wahrscheinlich einfaches Problem - Steh aufm Schlauch!

Beitrag von m.fuchs »

Warum? Beim Destructor sehe ich es ja ein, für den Constructor ist es doch für ein Großteil der Fälle nicht nötig.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

debeye
Beiträge: 12
Registriert: Mi 20. Mär 2013, 23:10

Re: Wahrscheinlich einfaches Problem - Steh aufm Schlauch!

Beitrag von debeye »

Au Mann...

ich hätt gern so ne Glaskugel. Und es stimmt, der für dieses Problem relevante Teil steht natürlich nicht im Thread:

Die Erzeugungszeile in der benutzenden Klasse war fehlerhaft.

Vielen Dank für die Hilfe!

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: Wahrscheinlich einfaches Problem - Steh aufm Schlauch!

Beitrag von Christian »

kanst du ganz einfach haben, heisst Erfahrung. Du musst nur warten und hartnäckig bleiben.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Antworten