Hallo ich möchte einige Ereignisse zusammen mit Zeit und Datum speichern. Platformunabhängig in einer DB und ohne einen DB Server zu nutzen. SQLite ware meine Idee. Wie erstelle ich eine DB in der ich eine Info und ein Datum eintrage und später mir alle infos vom 13.5.08 bzw. von 07 bis heute oder so anschauen kann. Wollte gerne den SQLite Browser verwenden. Hat wer eine Ideee?
Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge
Wo kommen die Ereignisse her?
Was sind das für Ereignisse?
Wer sammelt die Ereignisse um sie in die DB einzutragen?
Wie sehen die Randbedingungen aus?
Die Ereignisse kommen aus einem Log-File. Ich dachte die Ereignisse per Hand zu übertragen. Randbedingungen: Kein DB-Server, sollte unter winXP und Linux bearbeitbar sein.
Das wichtigste ist die Abfrage der Ereignisse aufgrund des Datums bzw. Abfrage des Datums durch eingabe eines Ereignisses.
Zuerst einmal musst Du dir das Format der Logdatei genau anschauen um zu definieren wie z.B. Dinge wie das Datum, das Ereignis und eventuell vorhandene weitere Informationen genau getrennt werden und damit Du diese automatisiert importieren kannst. Wahrscheinlich wird dies wohl mit Leerzeichen oder Tabulatoren geschehen.
Anschließend erstellst Du Dir eine SQLiteDB, z.B. gibt es für Firefox (den Browser) ein Plugin (nennt sich SQLite Manager) mit dem Du das erledigen kannst. Danach musst Du dich dafür entscheiden welche Sprache Du nutzen willst um die Eintragung zu automatisieren, wenn Du plattformunabhängig bleiben willst wäre eine Scriptsprache wohl das geeignetste. Hier stünde das bereits erwähnte Python, alternativ auch Perl oder PHP zur Verfügung (um mal verbreitete zu nennen die für viele Plattformen verfügbar sind).
Danach kommt das Schreiben der Importroutine, da kann man Dir dann aber erst behilflich sein, wenn die obigen Voraussetzungen so weit abgeklärt sind.
Btw... wie willst Du die Inhalte der DB dann plattformunabhängig darstellen? Falls Du planst über Netzwerk auf die Daten auf einem anderen System zuzugreifen dann wäre SQLite eine eher schlechte wahl, da dieses über keinen Serverdienst verfügt, für den wärst Du dann auch verantwortlich und noch was: Es gibt jede Menge echte Datenbanksysteme, die ebenfalls für viele Plattformen verfügbar sind wie MySQL, Postgres und Konsorten.
Hallo!
Die Programmiersprache Python ist für solche Fälle gemacht:
Hier mal ein kleines Beispiel.
Ich habe es aus der Python-Hilfe genommen und etwas modifiziert.
Es funktioniert nicht wirklich, zeigt aber die grundlegende Vorgehensweise:
Es sind nur wenige Zeile Code erforderlich.
# textfile öffnen
f=open('text.txt','r')
# alles Zeile in ein Array umkopieren
lines=f.readall()
# Datenbank anlegen
import sqlite3
conn = sqlite3.connect('/tmp/example')
c = conn.cursor()
# Tabelle anlegen
c.execute('''create table stocks (date text, trans text, symbol text, qty real, price real)''')
# alle Zeilen abarbeiten
for line in lines
# Daten aufbereiten (für den Insert-Befehl, abhängig von der Textfilestruktur)
# Datensatz einfügen, hier als Beispiel nur Textkostanten
c.execute("""insert into stocks values ('2006-01-05','BUY','RHAT',100,35.14)""")
Ein Link zu sqlite3: http://docs.python.org/lib/module-sqlite3.html
Gruss
ChrE