![]() |
urgh? Lesen Von Adresse 00000000 error bei... ???
hi
Ich habe keine ahrnung warum ich diesen error habe.... ![]() nach dem error springt der de-bugger ![]() und der code (der macht noch net fiel) error bei: button2click
Delphi-Quellcode:
hab ich wieder was falsch geschrieben??
procedure TForm1.Button1Click(Sender: TObject);
begin openDialog1.Execute; edit3.text:=opendialog1.FileName; end; procedure TForm1.Button2Click(Sender: TObject); var filedata, datacontent : tStringlist; databegin, dataend :integer; begin If openDialog1.Filename = '' then showmessage('no file loaded dumbass') else begin try filedata.Create; try filedata.LoadFromFile(opendialog1.FileName); except on E: Exception do begin showmessage(e.Message); end; end; databegin:=filedata.IndexOf(edit1.Text); dataend:=filedata.IndexOf(edit2.Text); finally FreeAndNil(filedata); FreeAndNil(datacontent); end; end; end; wenn ich den error ignorire, un das programm weiterlaufen lasse, ist die gleich message in der showmessage nachricht.... also muss es an: filedata.LoadFromFile(opendialog1.FileName); liegen ist auch wenn ich dass file zB in ein memo feld lade. |
Re: urgh? Lesen Von Adresse 00000000 error bei... ???
Delphi-Quellcode:
= FALSCH
filedata.Create
Delphi-Quellcode:
= RICHTIG
filedate := TStringList.Create;
und nicht
Delphi-Quellcode:
sondern
var
filedate:TStringList;
Delphi-Quellcode:
var
filedate:TStrings; |
Re: urgh? Lesen Von Adresse 00000000 error bei... ???
Würd das auch nicht so schreiben:
Delphi-Quellcode:
Sonder so:
If openDialog1.Filename = ''
then showmessage('no file loaded dumbass') else begin try filedata.Create; try filedata.LoadFromFile(opendialog1.FileName); except on E: Exception do begin showmessage(e.Message); end; end; databegin:=filedata.IndexOf(edit1.Text); dataend:=filedata.IndexOf(edit2.Text); finally FreeAndNil(filedata); FreeAndNil(datacontent); end; end;
Delphi-Quellcode:
So ist doch übersichtlicher, oder nicht?
If openDialog1.Filename = '' then
begin showmessage('no file loaded dumbass'); end else begin try filedata := TStringList.Create; try filedata.LoadFromFile(opendialog1.FileName); except on e : exception do showmessage(e.Message); end; databegin := filedata.IndexOf(edit1.Text); dataend := filedata.IndexOf(edit2.Text); finally filedate.free; end; end; Ausserdem, wofür brauchst du das "datacontent"?? |
Re: urgh? Lesen Von Adresse 00000000 error bei... ???
hmm.. kein error mehr :thuimb:
aber warum? :gruebel: was ist denn der unterschied von Tstringlist und Tstrings?? |
Re: urgh? Lesen Von Adresse 00000000 error bei... ???
Dein Fehler war das erstellen des Objektes:
wenn du ne StringList machen willst dann so
Delphi-Quellcode:
var
Liste:TStrings; begin Liste := TStringList.Create; try // Code finally Liste.free; end; end; |
Re: urgh? Lesen Von Adresse 00000000 error bei... ???
Irgendwie hats du die try-finally, try except Blöcke komisch geschachtelt.
Delphi-Quellcode:
Wobei ich auf den Except Block verzichten würde und mit FileExist prüfen würde, ob die Datei vorhanden ist. Nutz man allerdings einen Opendialog ist das überflüssig, weil man ihn so einstellen kann, dass er nur existierende Dateien akzeptiert.
sl := TStringlist.Create;
try sl. ...; try sl.LoadfromFile(...); except ...; end; finally sl.Free; end; |
Re: urgh? Lesen Von Adresse 00000000 error bei... ???
Zitat:
|
Re: urgh? Lesen Von Adresse 00000000 error bei... ???
Entweder so:
Delphi-Quellcode:
oder
If FileExists(opendialog1.filename) then
memo1.lines.loadfromfile(opendialog1.filename);
Delphi-Quellcode:
Beim ersten wird das nur gemacht wenn die datei vorhanden ist
if opendialog1.execute then
memo1.lines.loadfromfile(opendialog1.filename); und beim zweiten wird das nur gemacht wenn im opendialog auf "Öffnen" geklickt wird. Und das geht nur wenn die datei vorhanden ist |
Re: urgh? Lesen Von Adresse 00000000 error bei... ???
Bei TStrings handelt es sich lediglich um eine Klasse, die zwar Methoden angemeldet hat aber diese nicht selber implementiert -> abstrakte Basisklasse. (siehe Online-Hilfe)
TStringList ist ein Abkömmling von TStrings und implementiert die Methoden und Eigenschaften. Gruß Minz |
Re: urgh? Lesen Von Adresse 00000000 error bei... ???
Cool..So genau wusst ich das auch noch nicht
|
Re: urgh? Lesen Von Adresse 00000000 error bei... ???
cool danke!
|
Re: urgh? Lesen Von Adresse 00000000 error bei... ???
Zitat:
Charles Calvert hat in seinem Artikel ![]() Zumindest die beteiligten des Jedi-Projekts achten auf diese Konvention und machen das Verstehen das Codes somit insgesamt einfacher. Fragen nach dem ästhetischtem Indent, Caps oder Statement sollten demnach überdacht werden, weil die Praxis zeigt, das ein konformer Stil der allgemeinen Lesbarkeit zuträglich ist. |
Re: urgh? Lesen Von Adresse 00000000 error bei... ???
Ohne das jetzt alles durchzulesen..Entsprach mein Code diesen Konventionen?
|
Re: urgh? Lesen Von Adresse 00000000 error bei... ???
Ohne ins Detail zu gehen: Nein ;)
|
Re: urgh? Lesen Von Adresse 00000000 error bei... ???
Mhhh.Schade..Dann werd ich mir das mal durchlesen
|
Re: urgh? Lesen Von Adresse 00000000 error bei... ???
Zitat:
Gerade in diesem StyleGuide machen sie den grössten Fehler den ich mir beim Code-Layout vorstellen kann: fixe Spaces als Einrückung anstelle von Tabs. Das Problem ist, daß zwei Spaces dem einen Entwickler zu wenig, dem anderen genau richtig un dem dritten zu viel Einrückung sind. Mit Tabs hat man an der Stelle nur ein Zeichen, und jeder kann in seiner IDE selber einstellen, wie weit ein einzelner Tab einrücken soll. Das gibt dem Entwickler sein eigenes Gefühl von korrekter Einrückung, ohne daß er anderen die am gleichen Code arbeiten müssen seine bevorzugte Einrückung vorschreibt. Wichtig ist aber auf jeden Fall: Nur eine Art von Einrückung: Space oder Tabs, nie beides in der gleichen Datei oder genauso schlimm im gleichen Projekt durcheinander verwenden. |
Re: urgh? Lesen Von Adresse 00000000 error bei... ???
TABs haben den Nachteil, das sich jedes mal, wen ich einen Quellcode öffne die TAB Weite einstellen muss, sonst kann es passieren, dass ich bei manchen Quelltexten drei Kilometer horizontal scrollen muss. Und Mit TABS Copy and Paste wo anders rein (Notepad), geht meist auch schief.
Des wegen habe ich einen Code-Formnatieren installiert. Bekomme ich so unleserliche Quelltexte, wird der einmal drübergejagt und gut is'. |
Re: urgh? Lesen Von Adresse 00000000 error bei... ???
Wo kriegt man den Code-Formatierer her?
|
Re: urgh? Lesen Von Adresse 00000000 error bei... ???
Zitat:
Trotzdem scheinen diese Konventionen eine weite Verbreitung zu haben, wie auch die Pascal-Syntax von vielen verwendet wird. Man kann sich streiten, ob es nicht irgendwo Schwächen in der einen oder anderen Form gibt. Aber eigene Dialekte auszubilden und gleiche Dinge womöglich anders zu interpretieren ist nach meiner Ansicht kontraproduktiv. |
Re: urgh? Lesen Von Adresse 00000000 error bei... ???
Ich habe bis jetzt noch keine Nachteile bei Clavert gefunden. Deswegen versuche ich mich auch an seinen StyleGuide zu halten. Aber es wird langsam offtopic.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:58 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