Entwickler-Ecke

Sonstiges (Delphi) - Variablen exportieren, DB oder ini/textfile?Wie geht das?


Xearox - Mi 11.08.10 19:47
Titel: Variablen exportieren, DB oder ini/textfile?Wie geht das?
So, ich habe zwar einige Sachen hier im Forum gefunden, mit der SuFu, aber jedoch wurde ich da nicht sehr hell raus, weil ich damit noch nie mit gearbeitet hab.

Ich hab mir einen kleinen Wecker geschrieben.
Das hab ich auch alles soweit alleine hinbekommen, außer ein paar Fehler, aber da hatte ich schon einen Thread aufgehabt...

Nun möchte ich gerne, die Zeiten, die ich eingestellt hab, auch in eine Ini oder TextFile speichern, um diese im späteren Verlauf auszulesen.
Jedoch stelle ich mir das so einfach vor und wenn ich in meine ToDo liste reinschaue, dann werde ich im Stutziger, ob das überhaupt mit einem reinen Auslesen klappt.

So, nun das was ich erreichen möchte...

Mein Programm bietet eine Speichern und Lade Funktion(sind aber noch nicht Betriebsbereit, da mir die Kenntnisse fehlen).
Also...oh man, ich bin so kompliziert...
---
Also, man soll mit der Speichern Funktion ein Bestimmtes Datum, wie zum Beispiel einem Geburtstag oder einem Termin speichern.
Nun soll durch die Laden Funktion, automatisch, aus dem File, die passende Zeile rausgesucht werden und der Wecker soll dann automatisch die Zeit einstellen, welche man vorher beim Speichern festgelegt hat. Also wie beim Handykalender, Datum auswählen, Zeit auswählen, wann handy klingeln soll, und dann wenn das Datum "now" ist, soll der Wecker klingeln.
---

Wie bekomme ich nun das am Besten und am Einfachsten hin...
Soll ich dafür eine ini/textfile nutzen, oder gleich eine Datenbank, wobei ich bei beiden 0 Ahnung hab...
Aber ich bin ja hier, um dazu zulernen um später diese Sachen so im Kopf zu haben, das ich das auch selber schaffen kann...


Hat hier jemand ein Vorschlag?
Evtl. erklärungen?

Gruß Chris

---
Edit: Ich hab mich nun erstmal für eine DatenBank entschieden, hoffe ich liege damit richtig, falls jemand doch einen anderen Vorschlag hatte, bitte hier schreiben, wäre dankbar, bevor ich mir die Arbeit mit der Datenbank mache.


ALF - Do 12.08.10 02:28

Also für die paar kleinigkeiten würde ich ne ini nehmen!
Der Aufruf dafür ist

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
uses IniFiles;
.....
.....
var
 MyIni: TIniFile;
 Geburtstag: string;
begin
     MyIni := TIniFile.Create(Pfad+'\Wecker.ini');
     // Werte reinschreiben
     MyIni.WriteString('Geburtstag''Mutti''12.11.1962');
     MyIni.WriteString('Geburtstag''Schwester''??.??.????');
     MyIni.WriteString('Termine''Zahnartzt''23.06.2012');
     .......
     // Werte lesen
     //in diesem Fall kanst Du die Gruppe Geburtstag lesen und vergleichen mit dem Datum
     // passt ein Datum lässt Du es dir Anzeigen z,B.
     
     Geburtstag := Pini.ReadString('Geburtstag''Mutti''');
     ......
     MyIni.free;
end;

Was Du alles verwenden kannst, steht in der DH drin.
Integer,Boolean, Datum, Zeit, String usw
Ist dafür am besten, finde ich :wink: und! man kann auch mal schnell mit einem Texteditor Werte ändern.

Gruss Alf


Nersgatt - Do 12.08.10 08:29

Nur der Vollständigkeit halber sei erwähnt, dass im Beispiel die Ressourcenschutzblöcke fehlen:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
MyIni := TIniFile.Create(Pfad+'\Wecker.ini');
Try
  ...
Finally
  MyIni.Free;
end;


Gerd Kayser - Do 12.08.10 17:47

user profile iconALF hat folgendes geschrieben Zum zitierten Posting springen:
Also für die paar kleinigkeiten würde ich ne ini nehmen!
Sehe ich genau so. Die Verwendung einer Datenbank für eine Handvoll Datensätze erinnert mich immer an das Killen einer Ameise mit einer explodierenden Handgranate. :D
Allerdings würde ich die INI-Datei anders aufbauen:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
[Programm]
Version=1
Sound1=c:\daten\sound.dat\sirene.wav
Sound2=c:\daten\sound.dat\HappyBirthday.mp3
Eintraege=3

[1]
Datum=31.08.2010
Uhrzeit=08:00
Ereignis=Mutters Geburtstag
Sound=Sound2

[2]
Datum=16.08.2010
Uhrzeit=14:00
Ereignis=Zahnarzttermin
Sound=Sound1

[3]
Datum=31.08.2010
Uhrzeit=19:00
Ereignis=Geburtstagsparty
Sound=Sound2

Hinzufügen ist kein Problem: Einfach den Wert bei Eintraege um 1 erhöhen und den entsprechenden Abschnitt anlegen. Löschen ist etwas komplizierter: Beim Löschen Einträge um 1 reduzieren und den zu löschenden Abschnitt entfernen. Wenn der gelöschte Abschnitt nicht die höchste Nummer hatte, den Abschnitt mit der höchsten Nummer als den zuvor gelöschten Abschnitt speichern.
Beispiel: [2] wurde gelöscht. Abschnitt [3] als neuen Abschnitt [2] speichern und Abschnitt [3] entfernen.


elundril - Do 12.08.10 22:44

Alternativ würde sich auch noch XML eignen, im speziellen vielleicht das .ics-Format.

lg elundril