Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Probleme mi TIniFile (https://www.delphipraxis.net/36992-probleme-mi-tinifile.html)

thepaul 29. Dez 2004 11:06


Probleme mi TIniFile
 
Hi,

ich wollte in ein Prog eine Speicherung von bestimmten Daten per Ini einbauen.

Dazu hab ich erstmal in Form.close folgendes getippt:
Delphi-Quellcode:
  with ini.Create(ParamStr(0)+'settings.ini')do
    try
      ini.WriteBool('output','checkb',checkbox1.Checked);
    finally
      ini.Free;
    end;
  end;
wenn ich das dann starte funzt noch alles. Beim Beenden gibts dann aberirgend nen Fehler:
Zitat:

Zugriffsverletzung bei 00403FF0 in Modul 'project.exe'. Schreiben von Adresse 000000000A

edit:/ich kann das,Prog dann nur noch über den Taskmanager ausschalten :twisted:


Was hab ich da falsch gemacht? :gruebel:

mfg Paul


ps. Ich weiß nicht genau wo das hingehört! Bitte verschieben! :roll:

mirage228 29. Dez 2004 11:10

Re: Probleme mi TIniFile
 
Hi,

Delphi-Quellcode:
ini.Create(ParamStr(0)+'settings.ini')
Diese Konstrutktion ist absolut falsch.

Es muss heißen:
Delphi-Quellcode:
Ini := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'settings.ini')
:)

mfG
mirage228

Edit: ExtractFilePath() hinzugefügt.

Tonic1024 29. Dez 2004 11:11

Re: Probleme mi TIniFile
 
Hi

Delphi-Quellcode:
 
  INI:= TINIFile.Create(ExtractFilePath(ParamStr(0))+'settings.ini');
 
  try
    INI.WriteBool('output','checkb',checkbox1.Checked);
  finally
    INI.Free;
  end;
Sollte es tun...

MfG

Tonic

[edit] Ich muss schneller tippen... :? [/edit]

thepaul 29. Dez 2004 11:20

Re: Probleme mi TIniFile
 
Erstmal Danke für die schnellen Antworten.

Das funktioniert immer noch nicht! :( Ich hab auch die ganze Procedur noch mal gelöscht. Da geht alles ohne Probleme. Wenn ich das dann aber wieder einsetzt geht nix mehr.

Was könnte denn noch falsch sein?

Tonic1024 29. Dez 2004 11:22

Re: Probleme mi TIniFile
 
Ich war zu voreilig... War noch ein fehler im Code von mir...

Hab mal aufgeräumt und den fehler beseitigt. So sollte er es aber tun...


MfG

Tonic

thepaul 29. Dez 2004 11:25

Re: Probleme mi TIniFile
 
Hey,

jetzt funzt! :-D :dancer:

ps. du hast noch nen Semikolon vergessen :mrgreen:

Tonic1024 29. Dez 2004 11:26

Re: Probleme mi TIniFile
 
Jo, verfluchtes Copy'n'Paste :oops:

choose 29. Dez 2004 11:34

Re: Probleme mi TIniFile
 
Hallo Paul,

noch ein Tipp, der manchen Frust ersparen kann: Wenn Du das Objekt hinter Deine Variablen ini freigibst, verwende statt der Methode Free lieber die Prozedur FreeAndNil damit Du "ein paar Zeilen weiter unten" nicht versehentlich von einem gültigen Objekt ausgehst. Oder noch einfacher, wenn Du die Variable nirgendwo sonst benötigst (so wäre Dein Problem mit dem Konstruktor auch gar nicht erst entstanden), arbeite mit anonymen Referenzen in der Art
Delphi-Quellcode:
with TIniFile.Create(AFileName) do
try
  WriteBool(ASection, AnIdent, AValue);
finally
  Free;
end;

thepaul 29. Dez 2004 11:37

Re: Probleme mi TIniFile
 
nächstes Problem:

das auslesen. Ich habs eigentlich so gemacht wie hier im Tut.
nur ist die Checkbox jetzt immer so, wie das was ich als Wert reinschreibe

Delphi-Quellcode:
procedure TfrmMain.FormCreate(Sender: TObject);
var ini:tinifile;
begin
  ini:=tinifile.Create(ExtractFilePath(ParamStr(0)+'settings.ini'));

  try
    checkbox1.Checked:=ini.ReadBool('output','checkb',false);
  finally
    ini.Free;
  end;
end;
~> hier ist die checkbox immer leer.

Matze 29. Dez 2004 11:50

Re: Probleme mi TIniFile
 
Hast du etwas in der Ini stehen?

thepaul 29. Dez 2004 11:51

Re: Probleme mi TIniFile
 
Ja,

das Ini-Schreiben funzt!
Code:
[output]
checkb=0

Matze 29. Dez 2004 11:53

Re: Probleme mi TIniFile
 
Ändere mal die Null (0) in eine eins (1) und sag, ob's immer noch nicht "gecheckt" ist.

thepaul 29. Dez 2004 11:54

Re: Probleme mi TIniFile
 
wenn ich das änder dann ist die checkbox gecheckt

Tonic1024 29. Dez 2004 12:00

Re: Probleme mi TIniFile
 
Ich glaube ich hab das Problem nicht ganz verstanden...

Wenn in der INI eine Null steht, dann ist nicht gecheckt, und wenn eine Eins steht ist gecheckt, richtig?

Was genau geht dann deiner Meinung nach nicht?

Matze 29. Dez 2004 12:02

Re: Probleme mi TIniFile
 
Ja, dann geht doch alles. Vielleicht schreibst du das nicht richtig in die Ini.

Schreiben:
Delphi-Quellcode:
var ini:tinifile;
begin
  ini := tinifile.Create(ExtractFilePath(ParamStr(0)+'settings.ini'));

  try
    ini.WriteBool('output','checkb', CheckBox1.Checked);
  finally
    ini.Free;
  end;

thepaul 29. Dez 2004 12:12

Re: Probleme mi TIniFile
 
Fehler von mir. Ich hatte das so geändert das das zufällig übereingestimmt hat.

nochmal:
wenn ich schreibe
Delphi-Quellcode:
checkbox1.Checked:=ini.ReadBool('output','checkb',[b]true[/b]);
dann kommt ein häckchen, egal was in der settings.ini steht.

wenn ich
Delphi-Quellcode:
checkbox1.Checked:=ini.ReadBool('output','checkb',[b]false[/b]);
schreibe wird die CheckBox immer nicht abgehakt.

Die Namen stimmen auch überein.

thepaul 29. Dez 2004 12:13

Re: Probleme mi TIniFile
 
das selbe passiert auch wenn ich die fensterposition speicher.

zb.
Delphi-Quellcode:
Form.left:=ini.readinteger('position','left',0);
~> das fenster klebt immer oben am Rand.

Matze 29. Dez 2004 12:38

Re: Probleme mi TIniFile
 
Also eben hast du aber noch genau das Gegenteil behauptet. :gruebel:

thepaul 29. Dez 2004 12:44

Re: Probleme mi TIniFile
 
das war nen dummer zufall:

ich hatte die Werte auf True (im Prog) und hab in der Ini auf True umgestellt. Und wenn man dann so voreilig ist :oops: kommt eben das falsche bei raus! :evil:

FAZIT: Das Prog liest nicht aus der Ini oder hat irgend nen andres Problem

Matze 29. Dez 2004 12:45

Re: Probleme mi TIniFile
 
Und du hast die Ini davor immer mit Create erstellt?

thepaul 29. Dez 2004 12:51

Re: Probleme mi TIniFile
 
alles klar.

ich hatte sie falsch erstellt. das konnte ja nix werden.

Danke für die Hilfe. :wall: :wall: :wall:


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:40 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