Problem beim schreiben in eine ini Datei
Bei folgenden Sourcecode, den ich von Typer "ausgeliehen" habe [ big thx :thuimb: ], habe ich ein Problem.
Ich weiß nicht, welche Variable für ini stehen muss (String, Integer, usw.).
Delphi-Quellcode:
==============================================
// PROZEDURE 1: SPEICHERN
// Nur dann, wenn die Edit-Felder überhaupt Text enthalten if (Edit1.Text <>'') AND (Edit2.Text <> '') then begin // Zuerst die Value-List mit den Werten füllen, das True am Ende // steht für "Anhängen", hätte ich hier ein False, und würde der // Wert aus Edit1 schon existieren, würde der zugehörige Value // von Edit1 mit dem neuen Inhalt von Edit2 überschrieben werden ValueList.InsertRow(Edit1.Text,Edit2.Text, True); //Edit-Felder zurücksetzen Edit1.Text := ''; Edit2.Text := ''; //festlegen, in welche Datei wir schreiben [color=red][b]ini[/b][/color] := TIniFile.Create('.\connections.ini'); // Schleife, um alle Werte der Value-List in die Ini zu schreiben // warum for i := 1? Bei Null würde auch der Tabellenkopf mit // mit gespeichert werden! for i := 1 to (ValueList.RowCount - 1) do begin // Zuerst den Key, logisch, und dann den dazugehörigen Wert, // den wir leider nicht über den Index sondern über den // Key direkt rausfinden! ini.WriteString('Sektion1', ValueList.Keys[i], ValueList.Values[ValueList.Keys[i]]); end; ini.Free; end; // Fertig sry, aber ich bin noch ein n00b! :gruebel: Bitte um Hilfe :wink: [edit=Luckie] Mfg, Luckie[/edit] |
Re: Problem mit einer Variable
Hi und willkommen in der DP :hi: :dp:
Schreib das dazu
Delphi-Quellcode:
Dann sollte es gehen
uses Inifiles
... var Ini : TIniFile; Edit: Achso schreib den Code in die Delphi-Tags [ delphi]*Code*[/delphi]. Danke |
Re: Problem mit einer Variable
danke @ Spider :thuimb:
du bist ja sau schnell.. funzt alles SUPER |
Re: Problem mit einer Variable
Danke für die Blumen
|
Re: Problem mit einer Variable
Hab ein neues Problem...Der Text wird zwar aus der ValueList gelöscht, aber nicht aus der Datei (daten.ini).
Ich nehme an, es hat etwas mit dem ini.DeleteKey('Daten', ValueList.Keys[ValueList.Row] ) zu tun
Delphi-Quellcode:
====================================
// Prozedure 3: Das Löschen
// hier brauch man glaub ich nicht viel erklären, hier wird einfach // der Wert aus der Ini gelöscht, der im Moment in der ValueList // markiert ist ini := TIniFile.Create('.\daten.ini'); ini.DeleteKey([color=red]'Daten'[/color] :gruebel:, ValueList.Keys[ValueList.Row] ); ini.Free; // Und erst danach können wir den Wert selber auch aus der // Valuelist entfernen Connections.DeleteRow(Connections.Row); // und fertich Für Hilfe wäre ich sehr dankbar... :roll: [edit=Luckie]Warum packst du den Code immer in Quote-Tags? Wir haben extra Delphi-Tags für Delphi-Code. Mfg, Luckie[/edit] |
Re: Problem mit einer Variable
wo liegt jetzt das problem?? geht deletekey nicht?
|
Re: Problem mit einer Variable
Ist der Key auch nach dem Schließen der Connection noch in der Datei? Es könnte sein dass Änderungen erst beim Schließen der Verbindung zur ini-Datei geschrieben werden, aber ich will nicht zuviel sagen, ich kenn mich nicht wirklich aus :oops:
|
Re: Problem mit einer Variable
Zitat:
Aber erst mal vielen Dank an alcaeus :thuimb: für die Antwort |
Re: Problem mit einer Variable
Poste mal einen Link zum gesamten Source, dann kann ich das ganze mal durchchecken und schauen was möglich ist..
|
Re: Problem mit einer Variable
Das wird einfach nicht aus der INI gelöscht...nur aus der ValueList!
Hier der volle Source:
Code:
Für Hilfe wäre ich dankbar
unit uDatenbank;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids, ValEdit, ExtCtrls, StdCtrls, Inifiles; type TForm1 = class(TForm) cbSperren: TCheckBox; lblSperren: TLabel; Panel1: TPanel; Label2: TLabel; ValueList: TValueListEditor; Edit1: TEdit; btnListe: TButton; Button2: TButton; Edit2: TEdit; Button3: TButton; Panel2: TPanel; Label1: TLabel; Label3: TLabel; procedure btnListeClick(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; Ini : TIniFile; Sections: TStringlist; implementation {$R *.dfm} procedure TForm1.btnListeClick(Sender: TObject); var i : integer ; begin if (Edit1.Text <>'') AND (Edit2.Text <> '') then begin ValueList.InsertRow(Edit1.Text,Edit2.Text, True); Edit1.Text := ''; Edit2.Text := ''; ini := TIniFile.Create('.\daten.ini'); // Schleife, um alle Werte der Value-List in die Ini zu schreiben // warum for i := 1? Bei Null würde auch der Tabellenkopf mit // mit gespeichert werden! for i := 1 to (ValueList.RowCount - 1) do begin // Zuerst den Key, logisch, und dann den dazugehörigen Wert, // den wir leider nicht über den Index sondern über den // Key direkt rausfinden! ini.WriteString('Sektion1', ValueList.Keys[i], ValueList.Values[ValueList.Keys[i]]); end; ini.Free; end; end; procedure TForm1.Button2Click(Sender: TObject); var i : integer ; // j, help : integer ; begin // for j := 0 to (ValueList.RowCount - 1) do // ValueList.DeleteRow(i); Sections := TStringList.Create; ini := TIniFile.Create('.\daten.ini'); ini.ReadSection('Sektion1', Sections); ini.ReadSectionValues('Sektion1', Sections); for i := 0 to Sections.Count - 1 do ValueList.InsertRow(Sections.Names[i],Sections.Values [Sections.Names[i]],True); ini.Free; Sections.Free; end; [b]procedure TForm1.Button3Click(Sender: TObject); begin // hier brauch man glaub ich nicht viel erklären, hier wird einfach // der Wert aus der Ini gelöscht, der im Moment in der ValueList // markiert ist ini := TIniFile.Create('.\daten.ini'); ini.DeleteKey('Daten', ValueList.Keys[ValueList.Row] ); ini.Free; // Und erst danach können wir den Wert selber auch aus der // Valuelist entfernen ValueList.DeleteRow(ValueList.Row); end;[/b] end. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:33 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