Einzelnen Beitrag anzeigen

Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#5

Re: Datein in ein program einbinden

  Alt 6. Okt 2006, 10:43
Hi,
und herzlich willkommen in der DP

Erstmal eine kleine Warnung vorweg, du hast schon Songtexte in deinem Programm gespeichert. Im Moment laufen da einige Debatten und Klagen, ich glaube mich zu erinnern, dass genau das (Songtexte veröffentlichen) als illegal gilt. Wenn du das Programm als Verwaltung für Songtexte (ohne Inhalt) zur Verfügung stellst oder nur mit solchen gefüllt, die explizit eine Lizenz besitzen, die die Veröffentlichung erlaubt bist du jedenfalls auf der sicheren Seite!

Was dein eigentliches Problem angeht, so musst du dir anschauen, was für Datenstrukturen so zum Speichern in Frage kommen. Eine Datenbank dürfte hier erstmal völlig unangebracht sein, zumal du ja selbst sagst, dass du noch nicht lange programmierst.
An sich ist die einfachste Idee, dass du alle Einträge in einer Datei schreibst und die Datei dann beim Start aut. lädst.

Da gibt es dann wiederum verschiedene Formate, die in Frage kommen. Du kannst z.B. eine Ini-Datei verwenden, da gibt es Sektionen und in jeder Sektion ein Schlüssel-Wert Paar. Ein Wert (in dem Fall der Songtext) lässt sich eindeutig über seine Sektion (z.B. der Interpret) und dem Schlüssel (der Song) auslesen. Mehr dazu findest du in der Hilfe unter TIniFile und TMemIniFile.

Eine Alternative wären dann noch die Character Seperated Files (.csv), die kommen z.B. als einfachstes Austauschformat bei Excel (oder anderen Tabellenkalkulationsprogrammen) zum Einsatz. Wieder eine reine Textdatei. Jede Zeile der Datei entspricht einer Zeile in einer Tabelle. Da es sich um eine Tabelle handelt, hast du natürlich auch Spalten, die werden einfach durch ein Trennzeichen (den Seperator) kodiert. Würdest du also eine Tabelle erstellen, in der du die Spalten Künstler, Song, Songtext hast, dann würdest du in die Datei etwas schreiben wie "Künstler;Song;SongText" (ohne " ") und das Semikolon würde immer eine neue Spalte markieren. Das Trennzeichen ist dabei beliebig, typisch sind Komma und Semikolon, es kann aber auch ein Tabulator oder jedes andere Zeichen verwendet werden. Zum Schreiben kannst du eine einfache TStringList nehmen (die bietet Funktionen um eine Liste von Strings in eine Datei zu schreiben). Die Strings setzt du einfach aus den einzelnen Eingaben (Künstler, Name, Songtext) zusammen. Eine TStringList kann so eine (Text-)datei auch wieder einlesen, aber das zerlegen der Strings solltest du lieber mit einem Tokenizer (einfach mal hier nach Tokenizer oder StringTokenizer suchen) vornehmen. Die TStringList sieht ein Leerzeichen immer als Trennzeichen an (was du nicht willst).

Dann gäbe es noch die Möglichkeit, dass du XML verwendest. Dies ist eine Auszeichnungssprache, die Einzelheiten würden hier etwas weit gehen. Du hast sicherlich schon von XML gehört, da solltest du dir dann einfach ein Tutorial zu dem Thema (auch Delphi und XML) anschauen. Ist nicht so kompliziert, aber man sollte sich hier ruhig die Grundlagen anschauen.

Alternativ bleiben immer noch binäre / eigene Formate, aber das macht hier keinen Sinn (du würdest unnötig das Rad neu erfinden).
Wenn das alles mit Textdateien klappt (alle hier genannten Formate sind reine Textdateien in spezieller Formatierung), dann kannst du dir noch Packer und Delphi anschauen, dann werden die Dateien auch immer winzig bleiben

Gruß Der Unwissende