AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi neue ini einträge werden nicht gespeichert
Thema durchsuchen
Ansicht
Themen-Optionen

neue ini einträge werden nicht gespeichert

Ein Thema von Sektalas · begonnen am 18. Jan 2010 · letzter Beitrag vom 24. Jan 2010
Antwort Antwort
Seite 1 von 2  1 2      
Sektalas

Registriert seit: 6. Nov 2009
8 Beiträge
 
#1

neue ini einträge werden nicht gespeichert

  Alt 18. Jan 2010, 05:51
Hallo, ich bin fast am verzweifeln, weil es eigentlich eine einfache sache ist, aber es will einfach nicht klappen

An einem bestimmten Teil des programmes, werden die ini informationen ausgelesen und können geändert werden.

Aber ab da wo die Einträge in der Ini quasi geupdatet werden sollen, speichert er einfach nicht die neuen daten

Delphi-Quellcode:
 if fileexists(ExtractFilePath(ParamStr(0))+ 'db.plt') then
    begin
      ini2:=TIniFile.Create(ExtractFilePath(ParamStr(0))+ 'db.plt');
        try

            ini2.WriteInteger(playername, 'points', StrToInt(Edit1.Text)); //Neue Punkte schreiben
            ini2.WriteString(playername, 'editdate', DateToStr(date)); // Editierdatum schreiben
            ini2.WriteInteger(playername, 'puffer', newpuffer); //Puffer schreiben
            //ini.WriteInteger(playername, 'penalty', penalty); // Strafpunkt setzen (folgt später)
            ini2.UpdateFile;
        finally
         ini2.free;
        end;
    end;
Keiner der Writevorgänge funktioniert.

Am einem anderen teil im programm wiederum funktioniert es reibunglos

Delphi-Quellcode:
 if fileexists(ExtractFilePath(ParamStr(0))+ 'db.plt') then
    begin
      ini:=TIniFile.Create(ExtractFilePath(ParamStr(0))+ 'db.plt');
        try
            ini.WriteInteger(playername, 'points', StrToInt(playerpoints));
            ini.WriteString(playername, 'adddate', DateToStr(date));
            ini.WriteInteger(playername, 'puffer', puffer_calc);
            ini.WriteInteger(playername, 'penalty', 0);
            ini.WriteString(playername, 'edit', '');
        finally
         ini.free;
        end;
    end;
Ich finde einfach den Fehler nicht
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: neue ini einträge werden nicht gespeichert

  Alt 18. Jan 2010, 08:02
Steht in Edit1.Text auch ein Intefger drin?
Besser TryStrToInt(), StrToIntDef() nehmen
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.351 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: neue ini einträge werden nicht gespeichert

  Alt 18. Jan 2010, 08:13
Hi,

vielleicht stört ja auch das UpdateFile...
Ab NT werden die Daten ja nicht mehr gepuffert.
Braucht man wohl noch unter Linux...

Frank
Frank Reim
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#4

Re: neue ini einträge werden nicht gespeichert

  Alt 18. Jan 2010, 08:20
Zitat von mkinzler:
Steht in Edit1.Text auch ein Intefger drin?
Wenn nicht, dann würde ich mich beschweren, weil er uns die Fehlermeldung verschwiegen hat.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.442 Beiträge
 
Delphi 12 Athens
 
#5

Re: neue ini einträge werden nicht gespeichert

  Alt 18. Jan 2010, 08:31
Ich tippe eher darauf, daß das Ganze unter Vista und Windows 7 läuft und der Dateivirtualisierer zuschlägt.

ExtractFilePath(ParamStr(0))+ 'db.plt' Wenn man dann die geänderten INI-Einträge im Programmverzeichnis sucht, wird man nur die unveränderte INI-Datei finden.
Uwe Raabe
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: neue ini einträge werden nicht gespeichert

  Alt 18. Jan 2010, 08:43
Hallo,

glaube ich nicht

Zitat:
Am einem anderen teil im programm wiederum funktioniert es reibunglos
An den Thread-Ersteller.

Lösche die Ini mal und lasse sie durch den
nicht funktionierenden Code anlegen.
Vorher darf der funktionierende Teil aber nicht aufgerufen werden !

Falls es tatsächlich Vista oder Win7 ist,
les dir mal was zu "Ini nichts ins Programm-Verzeichnis" durch.

Das wurde hier schon so oft durchgekaut.

Und noch was:
Warum schreibst du den Code doppelt ? Don't repeat yourself (DRY).

Jetzt hast du 2 Stellen "Ini-Schreiben", die sich nur durch die Werte unterscheiden.

Mache genau eine Methode mit Parametern draus,
dann kannst schön einen Breakpoint setzen,
und u.a. ausschließen, dass die Code-Stück 2
nicht aus Versehen noch mal aufrufst und dabei deine anderen Werte wieder überschreibst.

Es bietete sich z.B. an, Darum / Uhrzeit (incl.Sekunden) mit in die Ini zu schreiben.


Heiko
Heiko
  Mit Zitat antworten Zitat
Sektalas

Registriert seit: 6. Nov 2009
8 Beiträge
 
#7

Re: neue ini einträge werden nicht gespeichert

  Alt 18. Jan 2010, 17:06
Danke für die vielen Antworten, kam leider jetzt erst zum lesen.

Zitat von mkinzler:
Steht in Edit1.Text auch ein Intefger drin?
Besser TryStrToInt(), StrToIntDef() nehmen
In onkeypress wird überprüft ob die eingabe ein integerwert ist. aber ich werde es trotzdem in Try ändern. Danke. Aber das der fehler hier entseht denke ich nicht, auch wenn ich 100% einen integerwert eingebe, besteht das problem.

Zitat von dataspider:
Hi,

vielleicht stört ja auch das UpdateFile...
Ab NT werden die Daten ja nicht mehr gepuffert.
Braucht man wohl noch unter Linux...

Frank
Ich hab es mit und ohne probiert, aber es bleibt alles beim gleichen


Zitat von himitsu:
Zitat von mkinzler:
Steht in Edit1.Text auch ein Intefger drin?
Wenn nicht, dann würde ich mich beschweren, weil er uns die Fehlermeldung verschwiegen hat.
Ich will eine problemlösung und werde euch nichts verheimlichen


Zitat von Uwe Raabe:
Ich tippe eher darauf, daß das Ganze unter Vista und Windows 7 läuft und der Dateivirtualisierer zuschlägt.

ExtractFilePath(ParamStr(0))+ 'db.plt' Wenn man dann die geänderten INI-Einträge im Programmverzeichnis sucht, wird man nur die unveränderte INI-Datei finden.
Auf Windows Vista/7 (in meinem fall 7) würde ich es auch schieben. Auch die UAC dachte ich mir zuerst. Aber da die genannte procedure ja funktionier ist es mir ein Rätsel.

-------------------



Zitat von hoika:
Hallo,

glaube ich nicht

Zitat:
Am einem anderen teil im programm wiederum funktioniert es reibunglos
An den Thread-Ersteller.

Lösche die Ini mal und lasse sie durch den
nicht funktionierenden Code anlegen.
Vorher darf der funktionierende Teil aber nicht aufgerufen werden !

... (will keinn fullquote machen)
Hab ich mal gemacht, di eini gelöscht und dann den scheinbar nicht funktionierenden code gestartet. Es wird dort keine ini erstellt geschweigedenn etwas in ihr gespeichert

Zitat:
Falls es tatsächlich Vista oder Win7 ist,
les dir mal was zu "Ini nichts ins Programm-Verzeichnis" durch.
Werde ich mal tun, wusste ich nicht, das es sowas gibt.

Zitat:
Warum schreibst du den Code doppelt ? Don't repeat yourself (DRY). ....
Diese 2 Aufrufe sind unabhängig voneinander


Edit:
Selbst wenn ich das Programm auserhalb der Entwicklungsumgebung als Administrator starte, passiert scheinbar nichts

Edi2: Jetzt hab ich das ganze in den Eigene Dateien ordner gemacht (die ini) trotzdem wird nichts geändert
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#8

Re: neue ini einträge werden nicht gespeichert

  Alt 19. Jan 2010, 10:39
Ich würde Folgendes tun: zuerst einmal eine Konstante deklarieren, damit Du garantiert überall denselben Dateinamen verwendest. Dann nicht im eigenen Programmverzeichnis speichern, das kann u.U. zur Virtualisierung führen wie schon angesprochen. Das Schreiben dann in eine eigene Methode auslagern und zum Schluss noch kontrollieren, ob "playername" in beiden Fällen befüllt ist.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
blauweiss

Registriert seit: 19. Jun 2007
142 Beiträge
 
#9

Re: neue ini einträge werden nicht gespeichert

  Alt 19. Jan 2010, 11:07
Hallo Sektalas,

untersuche doch einfach, ob die Routine überhaupt aufgerufen wird.
Dazu setzt Du entweder einen Breakpoint, oder (wenn Du mit dem Debugger nicht firm bist) Du baust testweise ein ShowMessage ein.

blauweiss
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#10

Re: neue ini einträge werden nicht gespeichert

  Alt 19. Jan 2010, 12:53
Hallo,

Zitat:
Diese 2 Aufrufe sind unabhängig voneinander
Es geht nicht um den Aufruf.
Der Code unterscheidet sich kaum voneinander.

Also in eine eigenständige Methode packen,
und die Ini-Werte als Parameter übergeben.

Dann reicht genau ein Breakpoint, um das zu debuggen.

Dass ExtractFileXXX nur einmal im Programmcode erscheinen soll,
wurde ja bereits gesagt.


Heiko
Heiko
  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 03: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