| |
|
|
H.Brill | Hallo, Ich möchte die Bereiche von GetAllCheckboxStates() und GetColumnUpdate() und halt die eigentlichen Daten in einer einzigen Datei speichern und später auch wieder laden. Bei den Funktionen Write/ReadFile- Quick() ist in der Hilfe von einem Offset im Bereich die Rede.
Bisher habe ich das alles in einzelne Dateien gespeichert. Da kommen bei 5 LVs (csv - Datei, .cfg - Datei, .fmt - Datei) schon einige zusammen.
Wie kann man das nutzen, bzw. hat sich jemand schon damit beschäftigt ? |
|
|
| Benutze XPROFAN X3 + FREEPROFAN Wir sind die XProfaner. Sie werden von uns assimiliert. Widerstand ist zwecklos! Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.
Was die Borg können, können wir schon lange. | 17.08.2005 ▲ |
|
|
|
|
| Das Problem selbst hat warscheinlich nichts mit der Listview.Dll zu tun.
Normalerweise würden diese 5 Dateien von denen Du sprichst im TempDir erstellt - und vom Programm zu einer einzigen Datei zusammengefügt. Das sollte die Speicherprozedur tun.
Hierbei könntest Du Dir einen einfachen Header für Deine Datei einfallen lassen, z.B.:
1. Long= Anzahl der Dateien, danach Longs für die Dateigrößen, danach die Dateien selbst.
Salve, iF. |
|
|
| |
|
|
|
H.Brill | Ja gut, was kann man denn mit Write/ReadFileQuick() mit dem Parameter O (Offset) sonst noch anfangen ?
Bisher war der bei mir immer 0, also ab Offset 0 beim Speichern / Lesen. Daher dachte ich, man könnte in dieser Richtung was machen.
Um irgendwelche Bereiche (z.B. den von GetcolumnUpdate() ) zu zerstückeln, ist es ja wohl nicht gedacht.
Frank, du mußt dir ja wohl etwas dabei gedacht haben, daß du den Parameter variabel gehalten hast. Sonst hättest du ihn ja auch in der Hilfe weglassen können. |
|
|
| Benutze XPROFAN X3 + FREEPROFAN Wir sind die XProfaner. Sie werden von uns assimiliert. Widerstand ist zwecklos! Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.
Was die Borg können, können wir schon lange. | 17.08.2005 ▲ |
|
|
|
|
Frank Abbing | Hi,
ok, angenommen, du hast 5 Bereiche, in denen jeweils eine Csv-Datei steht, die 1000 Bytes lang ist. Diese 5 Bereche kannst du per API CopyMemory / RtlCopyMemory in einen grossen Bereich zusammenfügen so:
Offset... 0 = Bereich 1 1000 = Bereich 2 2000 = Bereich 3 3000 = Bereich 4 4000 = Bereich 5
Du könntest jetzt diesen grossen Bereich in einer Datei speichern. Und umgekehrt auch wieder laden und den grossen Bereich wieder auf die kleinen Bereiche aufteilen und weiter verarbeiten. Du kannst dir den Umweg mit den ganzen kleinen Bereichen aber sparen, weil Read/WriteFileQuick() auch direkt aus dem grossen Bereich lesen/schreiben kann.
bytes&=1000 ReadFileQuick(addr(text$),grosserbereich#,2000,bytes&)
Liest Dateidaten direkt an Position 2000 des grossen Bereichs ein.
bytes&=1000 WriteFileQuick(addr(text$),grosserbereich#,2000,bytes&)
Schreibt 1000 Bytes aus dem grossen Bereich von Position 2000 in eine Datei. Du bist so also immer flexibel. Aber im Grunde ist der Offsetparameter überflüssig, weil Profan auch addierte Bereiche verarbeiten kann:
bytes&=1000 WriteFileQuick(addr(text$),grosserbereich#+2000,0,bytes&)
Naja. Vielleicht ist der Parameter für andere Spachen aber sinnvoll. |
|
|
| |
|
|
|
H.Brill | Ja, kannst du mal ein Codeschnipsel posten, wie so was in Profan aussieht. Ich hab ja im Grunde nur eine Csv und 2 andere Bereiche vom Checkboxstatus und einen 768 byte großen von GetColumnUpdate. Diese 3 Bereiche würde ich gerne in einer einzigen Datei haben. Dann hätte ich statt der 15 nur 5 Dateien (Montag.csv, Dienstag.csv,...Freitag.csv)
Ein kleiner Auszug, wie man das schreibt und wieder ausliest, würde mir reichen. |
|
|
| Benutze XPROFAN X3 + FREEPROFAN Wir sind die XProfaner. Sie werden von uns assimiliert. Widerstand ist zwecklos! Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.
Was die Borg können, können wir schon lange. | 18.08.2005 ▲ |
|
|
|