Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Datum von DateTimePicker in eine Ini File schreiben (https://www.delphipraxis.net/146686-datum-von-datetimepicker-eine-ini-file-schreiben.html)

Ouou 25. Jan 2010 13:03


Datum von DateTimePicker in eine Ini File schreiben
 
Hi Leutz,

hab hier ein kleines Problem... und zwar versuche ich das Datum das ich ausgewählt habe in der Komponente "DateTimePicker" in die Ini zu schreiben...

Bis jetzt speichere ich nur Edits aus das klappt auch wunderbar aber wie kann ich das Datum noch hinzufügen?

Delphi-Quellcode:
var Ini: TIniFile;
    i:  Integer;
begin
   ini := TIniFile.Create('C:\Versuch.ini');
  // Zum Speichern
  For i := 0 to ComponentCount - 1 do
  begin
    If Components[i] Is TEdit then
    begin
      with Components[i] as TEdit Do
      begin
        ini.WriteString('Daten',name,text);
      end;
    end;
  end;
end;
Hat jemand eine Idee?

MFG

DeddyH 25. Jan 2010 13:06

Re: Datum von DateTimePicker in eine Ini File schreiben
 
Wieso benutzt Du nicht einfach TIniFile.WriteDate?

Ouou 25. Jan 2010 13:17

Re: Datum von DateTimePicker in eine Ini File schreiben
 
In meiner vorhandenen Ini speichere ich schon Sachen von Editfeldern. Nun muss ich noch das Datum in die Ini speichern aber da hänge ich gerade...Kann man TiniFile.WriteDate in den vorhandenen Code mit einbeziehen?

DeddyH 25. Jan 2010 13:22

Re: Datum von DateTimePicker in eine Ini File schreiben
 
Klar kann man.
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
        ini.WriteString('Daten',(Components[i] as TEdit).name,(Components[i] as TEdit).text)
      else if Components[i] is TDateTimePicker then
        ini.WriteDate('Daten',(Components[i] as TDateTimePicker).name,(Components[i] as TDateTimePicker).Date);
        //oder auch als String, wenn Dir das lieber ist
        //ini.WriteString('Daten',(Components[i] as TDateTimePicker).name,FormatDateTime('dd.mm.yyyy',(Components[i] as TDateTimePicker).Date));
    end;
  finally
    ini.Free;
  end;
end;

Ouou 25. Jan 2010 13:42

Re: Datum von DateTimePicker in eine Ini File schreiben
 
Danke dir vielmals klappt wunderbar...

MFG

Ouou 25. Jan 2010 13:56

Re: Datum von DateTimePicker in eine Ini File schreiben
 
eine frage hätte ich noch...das jahr wird bei mir in der ini in der letzten zeile angezeigt ich bräuchte es aber in der ersten zeile. jemand einen vorschlag wie ich es hinbekomme?

MFG

DeddyH 25. Jan 2010 14:01

Re: Datum von DateTimePicker in eine Ini File schreiben
 
Verstehe ich nicht. Kannst Du mal die Datei posten, wie sie ist und wie Du sie gerne hättest? Eigentlich sollte die Zeilenreihenfolge ja keine Rolle spielen, wenn Du sie mit TIniFile wieder ausliest.

Ouou 25. Jan 2010 14:24

Re: Datum von DateTimePicker in eine Ini File schreiben
 
Liste der Anhänge anzeigen (Anzahl: 1)
hier ist das datum in der letzten zeile, ich benötige es aber in der allerersten:)

DeddyH 25. Jan 2010 14:28

Re: Datum von DateTimePicker in eine Ini File schreiben
 
Auch wenn ich den tieferen Sinn dahinter nicht sehe, versuch einmal, die Bedingungen innerhalb der Schleife (die mit is) umzudrehen, also zuerst auf TDateTimePicker und erst dann auf TEdit zu prüfen. Dazu musst Du aber wohl vorher die alte Ini löschen.

Luckie 25. Jan 2010 14:31

Re: Datum von DateTimePicker in eine Ini File schreiben
 
Das ist doch völlig unerheblich in welcher Reihenfolge die Werte in der Ini stehen. Denn ausgelesen werden die Wert doch über den Sektions- und Schlüsselnamen. aber wenn du es unbedingt so willst, dann schreib eben das Datum zu erst in die Datei und dann den Rest.

DeddyH 25. Jan 2010 14:33

Re: Datum von DateTimePicker in eine Ini File schreiben
 
Zitat:

Zitat von Luckie
Das ist doch völlig unerheblich in welcher Reihenfolge die Werte in der Ini stehen. Denn ausgelesen werden die Wert doch über den Sektions- und Schlüsselnamen. aber wenn du es unbedingt so willst, dann schreib eben das Datum zu erst in die Datei und dann den Rest.

Darauf will ich ja die ganze Zeit hinaus :zwinker:

Ouou 25. Jan 2010 15:21

Re: Datum von DateTimePicker in eine Ini File schreiben
 
ja für euch ist es unerheblich für mich aber nicht...:)

Also ich die bedingungen in der schleife auch mal umgedreht aber es funktionierte trotzdem nicht.
Muss doch irgendwie gehen das zuerst das datum und dann die edits ausgegeben werden...

Hat jemand noch ein vorschlag?

mfg

ChrisE 25. Jan 2010 15:57

Re: Datum von DateTimePicker in eine Ini File schreiben
 
Hallo Ouou,

das geht schon so wie die es beschrieben haben - ABER - wenn die Werte einmal in einer INI stehen wird deren Reihenfolge nicht mehr geändert sondern nur noch die Werte. Existiert ein Wert in der INI nicht wird in der Sektion eine entsprechende Zeile angehängt.

Willst du nun, dass das Datum immer am Anfang steht, kannst du z.B. überlegen die Sektion zu löschen und dann wieder komplett neu zu schreiben. Aber aufpassen, so arbeitet man eigentlich nicht mit INI-Files.

Greez, Chris

shmia 25. Jan 2010 16:01

Re: Datum von DateTimePicker in eine Ini File schreiben
 
Zitat:

Zitat von Ouou
ja für euch ist es unerheblich für mich aber nicht...:)

Auf die Begründung wäre ich gespannt.
Zitat:

Zitat von Ouou
Hat jemand noch ein vorschlag?

Man könnte ein Programm schreiben, dass alle Einträge in einer INI-Datei alphabetisch sortiert.
Also alle Sections sortieren und innerhalb einer Section alle Einträge sortieren.

Man könnte auch ein TMemIniFile verwenden und dann GetStrings() aufrufen.
Dann die ganze Chose irgendwie in die gewünschte Reihenfolge bringen und SetStrings() aufrufen.
Aber das ist den Aufwand nicht wert.

Ouou 26. Jan 2010 10:30

Re: Datum von DateTimePicker in eine Ini File schreiben
 
ich hätte hier noch eine frage... kann man bei diesem quellcode

Delphi-Quellcode:
ini.WriteString('Daten',name,text);
bei der section 'Daten' noch das Datum miteinbeziehen, sodass dann z.b Daten2010 steht? Ich meine nicht einfach mithinschreiben falls ihr das sagen wollt:).

MFG

Gehstock 26. Jan 2010 10:38

Re: Datum von DateTimePicker in eine Ini File schreiben
 
Delphi-Quellcode:
ini.WriteString('Daten'+Datetostr(NOW),name,text);

DeddyH 26. Jan 2010 10:40

Re: Datum von DateTimePicker in eine Ini File schreiben
 
Delphi-Quellcode:
SectionName := Format('Daten%s',[FormatDateTime('yyyy',DeinDatum)]);
Ini.WriteString(SectionName,Key,Value);
Getippt und nicht getestet.

himitsu 26. Jan 2010 10:55

Re: Datum von DateTimePicker in eine Ini File schreiben
 
Es gibt auch noch andere INI-Implementierungen, welche unter Anderem auch ein "Sortieren" der Einträge erlauben.

Sowas sollte z.B. in FastIniFile, Delphi-Referenz durchsuchenMemIniFile, sowie Bei Google suchenBigIniFile möglich sein.

DeddyH 26. Jan 2010 10:58

Re: Datum von DateTimePicker in eine Ini File schreiben
 
Verbleibt aber immer noch Frage, wozu das gut sein soll.

Ouou 26. Jan 2010 14:25

Re: Datum von DateTimePicker in eine Ini File schreiben
 
hey... also wenn ich diesen Code eingeben

Delphi-Quellcode:
ini.WriteString('Daten'+DateToStr(now),(Components[i] as TEdit).name,(Components[i] as TEdit).text)
funktioniert alles. Das Problem ist aber das es mir das aktuelle Datum anzeigt ich benötige aber das Datum bzw das Jahr das ich im DateTimePicker verwende.

Könnte es so funktionieren?

Delphi-Quellcode:
ini.WriteString('Daten'+FormatDateTime('yyyy'),(Components[i] as TEdit).name,(Components[i] as TEdit).text)
MFG

ATSV 26. Jan 2010 14:30

Re: Datum von DateTimePicker in eine Ini File schreiben
 
Delphi-Quellcode:
ini.WriteString('Daten' + DateToStr(DateTimePicker.Date), (Components[i] as TEdit).name,(Components[i] as TEdit).text);
so sollte es gehen

DeddyH 26. Jan 2010 14:32

Re: Datum von DateTimePicker in eine Ini File schreiben
 
Dann hat er ja wieder mehr als das Jahr.
Delphi-Quellcode:
ini.WriteString('Daten'+FormatDateTime('yyyy',DateTimePicker1.Date),(Components[i] as TEdit).name,(Components[i] as TEdit).text)

Ouou 26. Jan 2010 14:39

Re: Datum von DateTimePicker in eine Ini File schreiben
 
danke sehr klappt alles wunderbar :bounce1:

himitsu 26. Jan 2010 14:52

Re: Datum von DateTimePicker in eine Ini File schreiben
 
Ich würde es, vorallem bezüglich der String-/Speicherverwaltung, in etwa so machen:
Delphi-Quellcode:
ini.WriteString(FormatDateTime('"Daten"yyyy', DateTimePicker1.Date),
  Components[i].Name, (Components[i] as TEdit).Text);

DeddyH 28. Jan 2010 08:27

Re: Datum von DateTimePicker in eine Ini File schreiben
 
Und wieso nicht so wie hier? Dann muss man den String nur einmal ermitteln.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:14 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