AGB  ·  Datenschutz  ·  Impressum  







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

String dauerhaft speichern

Ein Thema von Fritz01 · begonnen am 25. Mai 2006 · letzter Beitrag vom 26. Mai 2006
Antwort Antwort
Fritz01

Registriert seit: 22. Mär 2006
Ort: Großenkneten
181 Beiträge
 
Delphi 7 Professional
 
#1

String dauerhaft speichern

  Alt 25. Mai 2006, 15:09
Hallo Leute,

wie ist es möglich einen String dauerhaft zu speichern, damit man diesen String nicht bei jedem Programmstart erneut eingeben muß.
Fritz
Fritz
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: String dauerhaft speichern

  Alt 25. Mai 2006, 15:14
Hallo!

Das kannst du mit INI-Files lösen. Dazu gibts eine Klasse namens Delphi-Referenz durchsuchenTIniFile in der Unit IniFiles.
Alternativ kannst du auch die Registry benutzen. Dazu nimm am besten die Delphi-Referenz durchsuchenTRegistry Klasse.

Links:
http://www.dsdt.info/tipps/?id=104
http://www.dsdt.info/tipps/?id=152

Grüße
Faux
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#3

Re: String dauerhaft speichern

  Alt 25. Mai 2006, 15:17
Hallo.

Ein Vorteil von TIniFile ist, dass jeder Schreibzugriff sofort zur Persistenz führt. Einer von vielen Nachteilen ist, dass jeder Lesezugriff zu einem Lesen von der Platte führt. Eine Alternative ist TMemIniFile.

Delphi-Quellcode:
unit DemoFrm;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, IniFiles;

type
  TDemoForm = class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    mif: TMemIniFile;
    DerString: String;
  end;

var
  DemoForm: TDemoForm;

implementation

{$R *.dfm}

procedure TDemoForm.FormCreate(Sender: TObject);
var
  fn: TFileName;
begin
  fn := ChangeFileExt(ParamStr(0), '.ini');
  mif := TMemIniFile.Create(fn);
  DerString := mif.ReadString('Einstellungen', 'DerString', '');
end;

procedure TDemoForm.FormDestroy(Sender: TObject);
begin
  with mif do
  begin
    UpdateFile;
    Free;
  end;
end;

end.
Grüße vom marabu
  Mit Zitat antworten Zitat
Fritz01

Registriert seit: 22. Mär 2006
Ort: Großenkneten
181 Beiträge
 
Delphi 7 Professional
 
#4

Re: String dauerhaft speichern

  Alt 25. Mai 2006, 18:30
Hi Marabu,
danke für die schnelle Antwort.
Habe ein EditFeld in diesem soll beim 1.Programmstart ein Text (Passwort) eingegeben und ausgewertet werden. Die Eingabe soll bei weitern Programmstart nicht mehr erforderlich sein, wohl aber die Auswertung.
Nun meine Frage: Wo und wie bringe ich in Deinem Beispiel meinen String (EditFeld.Text) ein?
Fritz
Fritz
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#5

Re: String dauerhaft speichern

  Alt 25. Mai 2006, 18:36
Hallo Fritz,

das geht so:

Delphi-Quellcode:
procedure TDemoForm.FormCreate(Sender: TObject);
var
  fn: TFileName;
begin
  fn := ChangeFileExt(ParamStr(0), '.ini');
  mif := TMemIniFile.Create(fn);
  EditFeld.Text := mif.ReadString('Einstellungen', 'EditFeld', '');
end;

procedure TDemoForm.FormDestroy(Sender: TObject);
begin
  with mif do
  begin
    mif.WriteString('Einstellungen', 'EditFeld', EditFeld.Text);
    UpdateFile;
    Free;
  end;
end;
Beachte bitte, dass ich WriteString() noch eingefügt habe.

marabu
  Mit Zitat antworten Zitat
Fritz01

Registriert seit: 22. Mär 2006
Ort: Großenkneten
181 Beiträge
 
Delphi 7 Professional
 
#6

Re: String dauerhaft speichern

  Alt 26. Mai 2006, 12:56
Hallo Faux und Marabu,
habt mir beide bei meinem Problem sehr geholfen, danke für die schnellen Antworten. Es funktioniert!!
Fritz
Fritz
  Mit Zitat antworten Zitat
HuxXx
(Gast)

n/a Beiträge
 
#7

Re: String dauerhaft speichern

  Alt 26. Mai 2006, 13:30
Zitat von faux:
Hallo!

Das kannst du mit INI-Files lösen. Dazu gibts eine Klasse namens Delphi-Referenz durchsuchenTIniFile in der Unit IniFiles.
Alternativ kannst du auch die Registry benutzen. Dazu nimm am besten die Delphi-Referenz durchsuchenTRegistry Klasse.
Wenns wirklich nur EIN String ist dann wäre TSTringlist besser, damit spart man sich auch die Unit für IniFiles oder Registry... (damit wird das prog net so gross)
Beispiel:

Delphi-Quellcode:
var hallo:TStringList;
begin
hallo:=TStringlist.Create;
hallo.Add('Der String...');
hallo.SaveToFile('C:\Dein_String.txt');
...
...
Laden:
Delphi-Quellcode:
var hehe:TStringList;
begin
hehe:=TStringlist.Create;
hehe.LoadFromFile('C:\Dein_String');
Edit1.Text:=hehe[1];
...
...
Greetz by Hux
  Mit Zitat antworten Zitat
Antwort Antwort


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 23:40 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