Seite 2 von 4
Verfasst: 13.10.2006 17:48
von remi_meier
In eine Struktur einlesen und mit SortStructuredArray() oder SortStructuredList()
nach einem Feld sortieren.
Verfasst: 13.10.2006 17:50
von Kaeru Gaman
> Wie ist das mit dem Speicher?
> Habe ca. 150 Datensätze a ca. 100 Zeichen pro Zeile!
kannst du selber ausrechnen: 150x100 = 15000 byte = knapp 15KB
bei unicode halt das doppelte...
(ok, es kommen noch die pointer dazu, also +4byte pro feld)
...soviel hauptspeicher solltest du locker erübrigen können...

Verfasst: 13.10.2006 17:51
von dysti
Wie würde das Codemäßig evtl. aussehen?
Verfasst: 13.10.2006 17:53
von dysti
Ich denke auch das ich soviel Speicher dafür übrig habe. Ist ja nur eine kleine Kassenwartverwaltung.
Verfasst: 13.10.2006 17:57
von Kaeru Gaman
eine möglichkeit:
structure erstellen, soviele strings, wie dein datensatz felder hat.
array erstellen, eindimensional, so viele zeilen wie die datei datensätze
einlesen:
große schleife
per readstring einen kompletten datensatz einlesen,
per kleine schleife und stringfield aufteilen und in die einzelnen felder in der structure in der aktuellen array-zeile schreiben.
große schleife ende
nach gewünschtem feld sortieren per sortstructuredarray
speichern:
große schleife
kleine schleife, struct-felder zusammenfügen mit kommata dazwischen.
ggf. mit CRLF$ abschließen
per writestring speichern
große schleife ende
und natürlich dateien öffnen/schließen, is kla..

Verfasst: 13.10.2006 18:01
von dysti
Danke Kaeru Gaman,
ich denke das bekomme ich hin. Zumindest hat man jetzt den berühmten roten Faden.
Danke an alle für die schnelle Hilfe.
Grüße
Dysti
Verfasst: 13.10.2006 18:10
von Kaeru Gaman
> Danke Kaeru Gaman,
aber gerne doch.
schön, dass du mit einer solchen anleitung klarkommst.
ich denke, da hast du mehr davon, als wenn jemand kompletten code gepostet hätte.
wenn noch fragen auftauchen, kannste ja wieder posten.
HF
Verfasst: 13.10.2006 18:24
von Little John
Kaeru Gaman hat geschrieben:structure erstellen, soviele strings, wie dein datensatz felder hat
Nur so aus allgemeinem Interesse:
Muss die Anzahl der Felder schon beim Schreiben des Programms bekannt sein, oder lässt sich die Structure dynamisch zur Lauzzeit anpassen?
Gruß, Little John
Verfasst: 13.10.2006 18:24
von mk-soft
Oder ODBC
Code: Alles auswählen
InitDatabase()
datei.s = GetCurrentDirectory() + "Telefon.csv"
If OpenDatabase(0, "Text-Dateien", "", "")
sql.s = "SELECT * FROM " + Datei + " ORDER BY NAMEN"
If DatabaseQuery(0, sql)
While NextDatabaseRow(0)
temp.s = GetDatabaseString(0, 0) + ";"
temp.s + GetDatabaseString(0, 1) + ";"
temp.s + GetDatabaseString(0, 2) + ";"
temp.s + GetDatabaseString(0, 3) + ";"
Debug temp
Wend
Else
Debug DatabaseError()
EndIf
EndIf
FF

Verfasst: 13.10.2006 18:25
von dysti
Ich habe tatsächlich noch eine Frage bzw. neue Idee. Man soll ja nicht doppelte Datenhaltung machen. Wenn ich zwei CSV-Datenbanken habe und in der zweiten für den Namen eine ID benutze, müssen bei einer Anzeige beide syncronisiert werden. Hat einer eine Idee wie man sowas macht?