Ini-Datei als Datenbank?!

  • Themenstarter Themenstarter D@nger
  • Beginndatum Beginndatum
D

D@nger

Hi,
ich möchte eine Ini-Datei ansattt einer Datenbank verwenden.
Und ein Datensatz bzw. eine Tabelle soll so aussehen:
Name;Vorname;Ort;Tel;Straße;KN
Name;Vorname;Ort;Tel;Straße;KN
Name;Vorname;Ort;Tel;Straße;KN
Name;Vorname;Ort;Tel;Straße;KN
Name;Vorname;Ort;Tel;Straße;KN
Name;Vorname;Ort;Tel;Straße;KN
Einlesen ist ja kein Problem, aber wenn ich es auslesen will muss es z.b: so sein:
Text3.Text=3 Datensatz, 3. Wort.
Wisst ihr vielleicht wie das gehen könnte?
Danke schonmal
MFG
D@nger
 
Eine INI-Datei als datenbank zu verwenden ist quatsch. Nehme doch einfach eine normale Textdatei in der du die Werte mit einem Komma getrennt speicherst. Beim einlesen
schreibst du die Werte in ein Array aus dem du dann wie du möchtest einen Wert auslesen kannst.
 
wenn man was mit komma getrennt speichert, ist das auch nicht so gut, weil wenn du die danach splittest und ein string mit kommas drin drin ist, hast du schon das erste problem ;)
dann würd ich schon einen(mehrere) selbstdefinierte splittertoken bauen(zb <++++~üüüü>)
wie auch immer.

Per Ini ist ganz schlechte Idee, da der Zugriff verhältnissmässig lange dauert.
Würde es also mit einer gut ausgeklüngelten textdateifunktionalität versuchen, oder per XML <--- hätte ich genommen, wenn ich keine db nehmen kann ;-]
 
Tach
Ich weiß garnicht was ihr habt ich hab das auch mal mit ner INI Datei gemacht und so schwer ist das nicht, nur aufwendig.

mit Schlüsselwörtern in der INI-Datei kann man die einzelnen Bereiche und Zeilen für das Programm kenntlich machen.

Hier ist mal ein mal ein wenig Quellcode
Dim strINI_Datei AS String
Dim arrDatei(50) as String
Dim i as Integer
Dim Zeilenzaehler

'Dateipfad wird an eine Variable übergeben
strINI_Datei AS String = Programmfpad &"Dateiname"
'Die Schleife wird so lange ausgeführt wie noch Zeilen vorhanden sind.
Do while Datei <>""
i=1
Do while i<50
'Die Zeilen mit dem Pfad werden an eine Varable übergeben (weniger schreib Kram)
arrDatei(i) = ReadIniFile(strINI_Datei,"Schlüsselwort" ,"Zeile"&Format Zeilenzaehler,"00","")
'Die nächst Zeile wird genommen
Zeilenzaehler = Zeilenzaehler +1
'Der nächste platz im Array wird gefühlt
i = i+1
Loop

Jetzt sind alle Zeilen im Array gespeichert es sei den es sind mehr als 50 Zeilen vorhanden dann muss das Array größer gemacht werden.

Um nun einzelne Wörter buchstaben usw zu erhalten
muss der Compiler zuerst wissen wo er starten muss.
Dies geht mit Instr
z.B.
Pos1 = Instr (arrDatei(i), ";")
'+1 deswegen weil er sonst bei der Abfrage von gleichen Zeichen hintereinader immer das erste nimmt und es würde als Pos 0 raus kommen.
Pos2 = Instr(Pos1+1,arrDatei(i),";"
....

Das auslesen des Teiles vom String geht dann so:

Name = Mid(arrDatei(i),1,Pos1-1)
Vorname = Mid(arrDatei(i) ,Pos1+1, Pos2-1)
...

Es ist zwar etwas umständlich aber mir fiehl damals nichts besseres ein
Ach ja ich über nehme keine Garanti dass das alles Funktioniert weil ich grad keinen Compiler zur Hand hab und es aus dem Kopf gemacht hab.

Mann kann ja für die Positionen und den Stringteilen ein Paar Schleifen und Arrays basteln dann hat man am ende dann nicht viel zu tun.

mfg Tetsuya
 
was gegen INI spricht sind die Zeiten find ich. Mess die mal und summier das dann.
Da kommt einiges bei rum.
 
Tja jedem das seine.
Das kommt darauf an ob es auf die Zeit drauf ankommt und ob man es anders kann.
Ich hab keine Ahnung wie ich das Programm (Dateien Sortieren und alte Dateien uverschieben oder gar löschen) zu dem der Quelltext gehört anders hätte schreiben sollen. So ging es und das Programm läuft übernacht und räumt dann den Server auf so ist es egal ob es eine oder fünf Stunden dauert.
 
Zurück