Entwickler-Ecke

Dateizugriff - Eingegebene Daten als ini speichern


DJ Strobe - Mi 06.07.05 17:32
Titel: Eingegebene Daten als ini speichern
Hallo.
Ich habe folgende Eingabemaske (Eingabe in Textboxen) in einer Windos.Forms-Anwendung:
user defined image

Nun will ich die eingegebenen Werte (alles Integer) in einer ini-Datei speichern. Ich hab schon mehrere Varianten an Codes ausprobiert, bekomme aber immer nur Fehlermeldungen vom Compiler.

Wäre schön, wenn hier jemand dazu nen Beispielcode posten könnte.


alias5000 - Mi 06.07.05 17:36

Also ganz allgemein benutzt du mal die Unit inifiles.
Wenn du jetzt Hilfe willst, musst du uns schon deinen Code zeigen, so pauschal geb ich nix ab.


Delete - Mi 06.07.05 18:09

Die eingegebenen Werte in eine ini-Datei zu speichern müsste machbar sein. Wie aber alias5000 schon sagte, musst du uns das Problem genauer erläutern. Was funktioniert denn genau bei dir nicht? Welche Fehler gibt der Compiler von sich?


DJ Strobe - Mi 06.07.05 18:13



Delete - Mi 06.07.05 18:22

Du hast vergessen, nach "Abfangjaeger" noch einen String zu setzen.


Quelltext
1:
2:
3:
ini.WriteInteger('Abfangjaeger','String',StrToInt(Class1.aj));
//oder
ini.WriteInteger('Abfangjaeger','String',Class1.aj);

In der ini-Datei schaut es dann nämlich so aus:

Quelltext
1:
2:
[Abfangjaeger]
String=DeinClassDings


Versuch es mal damit.


DJ Strobe - Mi 06.07.05 18:33

StrToInt: Fehler, nicht deklarierter Bezeichner

Irgendwie liebt das Ding Meldungen dieser Art :? .


DJ Strobe - Mi 06.07.05 20:28

Das mit der Deklaration hat ich wegbekommen:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
procedure TFlottenBearbeiten.BSpeichern_Click(sender: System.Object; e: System.EventArgs);
var ini : TIniFile;
begin
  try
    ini:=TiniFile.Create('Flotten.ini');
    ini.WriteInteger('Abfangjaeger','String',(Class1.aj));
   finally
    ini.Free;
  end
end;


Nur der speichert nur eine '0', nicht den Wert, den ich eingegeben habe. Fehlt noch eine Anweisung in der TextBox?


Delete - Mi 06.07.05 20:34

Dass er nun eine 0 ausgibt, liegt sicherlich am Class1.aj.

Hast du Abfangjaeger schon in der Datei gefunden? Denn du hast den letzten Satz weggelöscht ;)


DJ Strobe - Mi 06.07.05 20:40

Ja den Abfangjeager hab ich gefunden, nur der hat dann den Wert 0.


Delete - Mi 06.07.05 20:56

Greifst du denn mit class1 auf eine andere Form zu? Es steht ja in der uses Klausel und class1 gibt es nicht als .dcu-Datei. Und was bedeutet das .aj?


DJ Strobe - Mi 06.07.05 21:05

In Class1 hab sämtliche Variablen reingepackt, da das Programm aus mehreren Fenstern besteht. aj ist hier die Variable für die Abfangjäger.


Delete - Mi 06.07.05 21:26

Hmmm.. da bin ich jetzt selbst ein wenig ratlos. Ich werde aber kaum der einzige sein, der auch was zu diesem Thema zu sagen hat. Hoffentlich meldet sich mal einer, der eine korrekte Lösung zu diesem Problem weiß.


DJ Strobe - Mi 06.07.05 22:51

Hab's gefunden! :think: :!: :!: :!: :D :D :D :!: :!: :!:
Es fehlte die ConvertTo - Anweisung in der Abfrageprozedur:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
procedure TFlottenBearbeiten.BSpeichern_Click(sender: System.Object; e: System.EventArgs);
begin
  try
    ini:=TiniFile.Create('Flotten.ini');
    ini.WriteInteger('Abfangjaeger',('Int32'),(Class1.aj));
   finally
    ini.Free;
  end
end;



procedure TFlottenBearbeiten.EAbfangjaeger_TextChanged(sender: System.Object;
  e: System.EventArgs);
begin
  Class1.aj := Convert.ToInt32(EAbfangjaeger.Text); // <--- Konvertiert zu Integer und schreibt den Wert auf Class1.aj
end;


:wink2: Danke für die Hilfe! @pupsii


Delete - Mi 06.07.05 22:56

Na das ist ja was erfreuliches! :) Und bitte, dass ich dir ein bisschen helfen konnte ;)


DJ Strobe - Do 07.07.05 02:01

Jetzt kann es losgehen mit Taktikplaner.exe :lol: