ASCII-Datenbank..
-
.. oder auch Textdatei genannt.
Ich möchte ne Textdatei Zeilen lesen, diese Zeilen an einen Zeichen(|) splitten und dann in einem ListView-Steuerelement anzeigen lassen.
Bin totaler Newbie in C++.
Je mehr Code ihr als Antwort posten könntet um so besser.
MfG
mnhg
-
Öh, wieso sollten wir dir die Arbeit abnehmen?
Dateien zeilenweise laden kann man mit einer TStringList, aufsplitten geht mit den AnsiString Funktionen Pos Und SubString.
Viel Spaß.
-
Oder machs mit einer Ini Datei, TIniFile ist recht praktisch zu handhaben
-
Auf die Idee mit den Profildateien bin ich auch gekommen, hab dann aber gelesen das es nur bis 64K Dateilänge funktioniert und konnte diese Zahl nicht meine Daten zu ortnen.
Eine *.ini --> Klasse also 30 Schüler(5 Daten) mit 15 Fächern zu je 2 Noten und 2 Fehltagesangaben. Kann ich die ini nehmen, wenn ja dann schaff ich das auch alleine, müsse ja wie in VB funktionieren.
MfG
mnhg
-
Du kannst auch deine Trennzeichen durch "\n" ersetzen (AnsiReplaceStr) und das dann der Text-Eigenschaft einer TStringList zuweisen. Schon hast du alle Felder schön aufgelistet. So eine Art explode()-Ersatz, da es bei BCB nichts vergleichbares gibt. (Zumindest ist mir nichts aufgefallen.)
-
TStringList ist das richtige für dich
ungefähr kannst du das so lösen:
TStringList *File = new ... TStringList *Zeile = new ... Zeile->Delimiter = '|'; File->LoadFrom.... for (int i = 0; i < File->Count;... { Zeile->DelimitedText = File->Strings[0]; // auf einzelne felder zugreifen for (int j = 0; j < Zeile->Count... { String Feld = Zeile->Strings[j]; ..... } }
Hilfe TStringLIst, Dilimiter, DelimitedText ...
-
Wobei anzumerken ist, dass DelimitedText etc. erst ab BCB6 zur Verfügung stehen.
Man kann sich aber auch mit dem "normalen" CommaText behelfen.