AGB  ·  Datenschutz  ·  Impressum  







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

Frage zu IniFile

Ein Thema von Ouou · begonnen am 27. Jan 2010 · letzter Beitrag vom 28. Jan 2010
Antwort Antwort
Ouou

Registriert seit: 16. Mär 2009
108 Beiträge
 
Delphi 2007 Architect
 
#1

Frage zu IniFile

  Alt 27. Jan 2010, 13:05
Hi Leute,

ich beschäftige mich seit einiger zeit mit der inifile, haut auch alles wunderbar hin bis jetzt. in meinem projekt speichere ich nun alle einträge die ich in meinen edits habe in die inifile. Nun meine frage: Angenommen man hat 10 Edits in denen ein eintrag steht aber man will nur 3 edits in der ini speichern... funktioniert das, dass man nur 3 werte in der inifile speichern kann?

Hier ist mein vorhandener Code indem ich auf alle Edits zugreife:

Delphi-Quellcode:
var Ini: TIniFile;
    i: Integer;
begin
  ini := TIniFile.Create('C:\Beispiel.ini');
  try
    // Zum Speichern
    For i := 0 to ComponentCount - 1 do
    begin
      If Components[i] Is TEdit then

        ini.WriteString('Daten'+FormatDateTime('yyyy',Summen.Date),(Components[i] as TEdit).name,(Components[i] as TEdit).text);
    end;
  finally
    ini.Free;
  end;
end;
Danke schon mal für die Comments im voraus

mfg
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Frage zu IniFile

  Alt 27. Jan 2010, 13:09
Dann prüfe eben nicht nur den Typ (TEdit), sondern auch noch den Namen der Komponenten.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Ouou

Registriert seit: 16. Mär 2009
108 Beiträge
 
Delphi 2007 Architect
 
#3

Re: Frage zu IniFile

  Alt 27. Jan 2010, 13:28
könntest du mir eine kleine hife geben wie ich des hinbekomm?
würde doch mit findcomponent funktionieren oder täusch ich mich da?
  Mit Zitat antworten Zitat
Ouou

Registriert seit: 16. Mär 2009
108 Beiträge
 
Delphi 2007 Architect
 
#4

Re: Frage zu IniFile

  Alt 27. Jan 2010, 13:53
Delphi-Quellcode:
var Ini: TIniFile;
    i: Integer;
begin
  ini := TIniFile.Create('C:\Versuch.ini');
  try
    // Zum Speichern
    For i := 0 to ComponentCount - 1 do
    begin
      If Components[i] Is TEdit then
        TEdit(FindComponent('Hallo' + IntToStr(i))).Text);
        ini.WriteString('Daten'+FormatDateTime('yyyy',Summen.Date),(Components[i] as TEdit).name,(Components[i] as TEdit).text)
      else if Components[i] is TDateTimePicker then
        ini.WriteString('Summen',(Components[i] as TDateTimePicker).name,FormatDateTime('yyyymm',(Components[i] as TDateTimePicker).Date));
    end;
  finally
    ini.Free;
  end;
end;
Was mache ich falsch ?
  Mit Zitat antworten Zitat
Andreas L.
(Gast)

n/a Beiträge
 
#5

Re: Frage zu IniFile

  Alt 27. Jan 2010, 13:55
if TEdit(Components[i]).Name = 'then
  Mit Zitat antworten Zitat
Ouou

Registriert seit: 16. Mär 2009
108 Beiträge
 
Delphi 2007 Architect
 
#6

Re: Frage zu IniFile

  Alt 27. Jan 2010, 14:17
wie trenne ich es indem ich zwei Edits speichern will?

if TEdit(Components[i]).Name = 'bla','blubthen ?
  Mit Zitat antworten Zitat
Ouou

Registriert seit: 16. Mär 2009
108 Beiträge
 
Delphi 2007 Architect
 
#7

Re: Frage zu IniFile

  Alt 27. Jan 2010, 15:36
wie kann man es trennen wenn man zb. 2 oder 3 edits in die ini nur speichern will?

Delphi-Quellcode:
begin
      if TEdit(Components[i]).Name = 'prodLK',??? then
          ini.WriteString('Daten'+FormatDateTime('yyyy',Summen.Date),(Components[i] as TEdit).name,(Components[i] as TEdit).text)

    else if Components[i] is TDateTimePicker then
          ini.WriteString('Summen',(Components[i] as TDateTimePicker).name,FormatDateTime('yyyymm',(Components[i] as TDateTimePicker).Date));
    end;
  finally
    ini.Free;
  end;
end;
  Mit Zitat antworten Zitat
Andreas L.
(Gast)

n/a Beiträge
 
#8

Re: Frage zu IniFile

  Alt 27. Jan 2010, 16:08
if (TEdit(Components[i]).Name = '123') or (TEdit(Components[i]).Name = 'xyz') then
  Mit Zitat antworten Zitat
hoika

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

Re: Frage zu IniFile

  Alt 28. Jan 2010, 09:43
Hallo,

Zitat:
aber man will nur 3 edits in der ini speichern
Wenn du nur 3 Edits reinschreiben willst,
warum nimmst du dann nicht 3 WriteString's,
statt dich mühselig durch alle Komponenten zu hangeln ?

Wenn es denn unbedingt sein soll,
packe die 3 Edit-Namen in eine StringList und vergleiche den aktuellen Edit.Name
ähnlich wie in #8.

Aber ich würde das etwas anders machen

Delphi-Quellcode:
var
  Edit: TEdit;
  StrList: TStringList;
begin
  StrList:= TStringList.Create; // try finally selber einfügen ...
  StrList.Add('Edit1');
  StrList.Add('Edit5');
 

  ..

  if Components[i] is TEdit then
  begin
    Edit:= TEdit(Components[i]);
    if StrList.IndexOf(Edit.Name)<>-1 then
    begin
      Ini. WriteString ...
    end;

...
  StrList.Free;

end;

Warum so umständlich ?
Neu zu speichernde Editoren können einfach per StrList.Add eingefügt werden,
an genau einer Stelle.

Der Code bei if Components[i] is TEdit then
sorgt dafür, dass du dort auch mal einen Breakpoint setzen kannst,
wenn etwas nicht klappt. Du hast dann sofort den Edit.Name.


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