AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

INI Dateien mit Integer verwenden

Ein Thema von gauggi · begonnen am 19. Aug 2006 · letzter Beitrag vom 19. Aug 2006
Antwort Antwort
Seite 1 von 2  1 2      
gauggi

Registriert seit: 18. Apr 2006
177 Beiträge
 
#1

INI Dateien mit Integer verwenden

  Alt 19. Aug 2006, 14:38
Hallo!

Was ist da Falsch??

Delphi-Quellcode:
procedure TForm1.FormShow(Sender: TObject);
var
ini: TIniFile;
a: integer;
begin
try
ini := TiniFile.Create(ExtractFilePath(ParamStr(0))

+'gaugghtmlkonfig.ini');
begin
//Ab hier ist es falsch laut D3
a:= ini.ReadInteger('Allgemein', 'Erststart', 0);
//Dies seien inkompatible Typen
if a='1then OKRightDlg7.ShowModal;
end;
Wie könnte man das anders machen??

mfg gauggi

[edit=Jelly]Titel auf Wunsch von Gauggi geändert Mfg, Jelly[/edit]
  Mit Zitat antworten Zitat
OregonGhost

Registriert seit: 8. Jun 2002
Ort: Lübeck
1.216 Beiträge
 
Delphi 3 Professional
 
#2

Re: Form über Ini anzeigen geht nicht

  Alt 19. Aug 2006, 14:41
Hmm, mir wäre neu, dass man in Delphi mitten im Code einen neuen Block (begin...end) eröffnen kann...
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.
  Mit Zitat antworten Zitat
Benutzerbild von leddl
leddl

Registriert seit: 13. Okt 2003
Ort: Künzelsau
1.613 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Form über Ini anzeigen geht nicht

  Alt 19. Aug 2006, 14:42
Zitat von gauggi:
Hallo!

Was ist da Falsch??

Delphi-Quellcode:
a: integer;
if a='1' .,..
Wie könnte man das anders machen??
ZB einen Integer auch mit einem Integer vergleichen a ist als Integer deklariert, du vergleichst die Variable aber später mit der String-Konstanten '1'. Laß die ' weg, dann geht's auch
Axel Sefranek
A programmer started to cuss, cause getting to sleep was a fuss.
As he lay there in bed, looping round in his head
was: while(!asleep()) ++sheep;
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Form über Ini anzeigen geht nicht

  Alt 19. Aug 2006, 14:43
wenn a ein integer ist, kannst du es nicht mit dem string-literal '1' vergleichen. Wir sind ja hier schließlich nicht bei PHP!

EDIT: Ja, OreghonGhost, das try ist da wohl ein wenig unglücklich geworden...
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
gauggi

Registriert seit: 18. Apr 2006
177 Beiträge
 
#5

Re: Form über Ini anzeigen geht nicht

  Alt 19. Aug 2006, 14:47
Zitat von DGL-luke:
wenn a ein integer ist, kannst du es nicht mit dem string-literal '1' vergleichen. Wir sind ja hier schließlich nicht bei PHP!

EDIT: Ja, OreghonGhost, das try ist da wohl ein wenig unglücklich geworden...
Wie kann ich das nun machen?

Zum Schluss wird die INI wieder freigegeben:
das habe ich vom obrigen Code weggelassen:
Delphi-Quellcode:
finally
ini.Free
end;
end;
mfg gauggi
  Mit Zitat antworten Zitat
Benutzerbild von CK_CK
CK_CK

Registriert seit: 30. Aug 2005
Ort: Dortmund, Germany
388 Beiträge
 
Delphi 2006 Enterprise
 
#6

Re: Form über Ini anzeigen geht nicht

  Alt 19. Aug 2006, 14:49
So:
Delphi-Quellcode:
procedure TForm1.FormShow(Sender: TObject);
var
  ini: TIniFile;
  a: integer;
begin
  try
    ini := TiniFile.Create(ExtractFilePath(ParamStr(0))+'gaugghtmlkonfig.ini');
    a:= ini.ReadInteger('Allgemein', 'Erststart', 0);

    if a=1 then OKRightDlg7.ShowModal;
  finally
    ini.Free;
  end;
end;
Chris
» «
Mehr von mir (Programme, etc.): http://www.kroegerama.de
  Mit Zitat antworten Zitat
gauggi

Registriert seit: 18. Apr 2006
177 Beiträge
 
#7

Re: Form über Ini anzeigen geht nicht

  Alt 19. Aug 2006, 14:51
Zitat von CK_CK:
So:
Delphi-Quellcode:
procedure TForm1.FormShow(Sender: TObject);
var
  ini: TIniFile;
  a: integer;
begin
  try
    ini := TiniFile.Create(ExtractFilePath(ParamStr(0))+'gaugghtmlkonfig.ini');
    a:= ini.ReadInteger('Allgemein', 'Erststart', 0);

    if a=1 then OKRightDlg7.ShowModal;
  finally
    ini.Free;
  end;
end;
Aso! Die Stringstriche '' habe ich ganz übersehen!

Danke an alle
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#8

Re: Form über Ini anzeigen geht nicht

  Alt 19. Aug 2006, 15:10
Besser so:

Delphi-Quellcode:
ini := TiniFile.Create(...);
try
  // INI verarbeiten
finally
  ini.Free;
end;
Wenn der Constructor von TIniFile eine Exception auslöst, wird die (lokale) Variable ini nicht initialisiert. Steht der Aufruf des Constructors im Innern der TRY-Anweisung, wird auf jeden Fall der FINALLY-Abschnitt durchlaufen, in dem der Aufruf der Methode Free dann wahrscheinlich zum nächsten Fehler führen wird. Mit obigem Code wird das vermieden.

Gruß Hawkeye
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#9

Re: Form über Ini anzeigen geht nicht

  Alt 19. Aug 2006, 16:23
Zitat von Hawkeye219:
Wenn der Constructor von TIniFile eine Exception auslöst, wird die (lokale) Variable ini nicht initialisiert.
Nein, da widerspreche ich und sage, dass die Variable in dem Falle trotzdem ein Nil bekommt. So hatte ich das mal ausprobiert und bin auf das Ergebnis gekommen.

/EDIT: Ok, nicht mal auf das kann ich mich verlassen, wie Hawkeye219 beweist. Ich hatte es damals mit D4 ausprobiert, aber das sollte keinen Unterschied machen. Nun gut, ich nehme alles zurück und behaupte das Gegenteil...
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#10

Re: Form über Ini anzeigen geht nicht

  Alt 19. Aug 2006, 17:52
Hoffentlich wird das jetzt nicht OT...

Zitat von Muetze1:
So hatte ich das mal ausprobiert und bin auf das Ergebnis gekommen.
Hier ist mein Testcode:

Delphi-Quellcode:
type
  TDummy = class (TObject)
  public
    constructor Create;
  end;

constructor TDummy.Create;
begin
  inherited;
  raise Exception.Create ('oops!');
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  Dummy : TDummy;
begin
  Dummy := Pointer(4711);
  try
    Dummy := TDummy.Create;
  except
    ShowMessage (Format('%d', [Cardinal(Dummy)]));
  end;
end;
Die Messagebox zeigt den Wert 4711 an, nicht den Wert 0. Getestet mit Delphi 6 und BDS 2006.

Gruß Hawkeye
  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 13:10 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