| |
|
|
| Hallo Frank Da komme ich nochmal mit eine Frage...
Wenn ich eine dbf datei einlese, ist es possibile und fals ja, wie, z.b. das Datum zu formatiern, wenn es in der dbf steht 20020327 in 2002:03:27 umzuwandeln und in den Listview darstellen?
In meinen Listview habe ich es so,
Let Data$ = @dbGet$(DATUM) Let Data$ = @Mid$(Data$,7,2),:,@Mid$(Data$,5,2),:,@Mid$(Data$,1,4)
Dar bei Deinen Listview das einlesen automatisch im speicher geschieht, sehe ich noch nicht die Möglichkeit es zu formatieren
Danke per jeden Tip
Fernando |
|
|
| |
|
|
|
| Hallo Fernando,
das potuto ich als Flag realisieren, z.B. als Flag 2. Wäre dann Flag 2 gesetzt, dann würde das Datum automatisch in das neue Format übersetzt.
Wäre nicht schlecht, wenn du mir per Email eine dbf-File schickst, die Datums-Angaben enthält, dann potuto ichs besser testen.
Saluto, Frank |
|
|
| |
|
|
|
| Hallo zusammen
2002:03:27 ? Wäre es nicht besser umzusetzen in 2002.03.27 ?
@Fernando: Danke nochmal per die File !
Saluto, Frank |
|
|
| |
|
|
|
| Ciao,
so, hab das Flag jetzt eingebaut. Hier die neue Beschreibung der Funktion, ich hoffe das geht jetzt so in Ordnung:
DbfToCsv(B,A,S,Z,F)
Wandelt eine dBaseIII (.dbf) File um in un CSV-File (im Speicher).
B : Long - Zeiger auf einen Bereich, in den mit ReadFileQuick() eine DBF-File geladen wurde. A : Long - Anzahl Bytes in B. S : Zeiger auf einen Bereich, der die Anzahl Spalten in der Dbf-File in B empfängt (Long-Int) oder 0. Z : Zeiger auf einen Bereich, der die Anzahl Zeilen in der Dbf-File in B empfängt (Long-Int) oder 0. F : Long - Flag.
Rückgabe-Ergebniss: Long - Anzahl generierter Bytes in der neuen Csv-File (in B).
Weil viele User gerne mit dBase-File arbeiten, wurde diese Funktion implementiert. A ist die Dimensione der File in B. S muß una variabile sein oder ein vier Byte großer Speicher, in die nachher die Anzahl Spalten eingetragen ist. steht hier Null, dann wird der Parameter S ignoriert. Z ist ebenfalls una variabile oder ein vier Byte großer Speicher, nur steht hier nachher die Anzahl Zeilen. F ist ein Flag. Ist Bit Null gelöscht, dann werden auch die Felder (Headerinformationen) der Dbf-File mit ausgelesen. Die erste Zeile in der Csv-File beinhaltet dann die Feldnamen. Ist Bit Null in F gesetzt, dann werden die Felder ignoriert und nicht mit in die Csv-File übernommen. Feldnamen sind vergleichbar mit den Texten der Spaltenbuttons. Ist Bit Eins in F gesetzt, dann werden Datumsfelder vom Type 20020726 automatisch eingesetzt als 2002.07.26 (=26.07.2002). Hier nochmal die Liste aller möglichen Flags ( kombinierbar durch OR Verknüpfung oder Addition).
0 = Felder nicht mit in die Csv-File auslesen / keine Datumsfelder-Konvertierung 1 = Felder mit in die Csv-File auslesen 2 = Datumsfelder konvertieren, z.B. 20020726 wird zu 2002.07.26
Die neu erstellte Csv-File steht nachher in B, die alten Daten in B werden überschrieben. Weil eine Dbf-File quasi immer größer ist, als eine Csv-File, muß bei der Speicherbereichs-Dimensione normalerweise nichts beachtet werden.
text$=Datei.dbf bytes&=@FileSize(text$) Dimensione der File ermitteln (bytes&) If bytes&>0 Dim bereich#,bytes& ReadFileQuick(addr(text$),bereich#,0,bytes&) Dbf-File laden bytes&=DbfToCsv(bereich#,bytes&,addr(spalten&),0,0) Dbf konvertieren nach Csv / bytes& neu ermitteln CsvToListview(listview&,bereich#,bytes&,spalten&) Csv File als Items in Listview einlesen Dispose bereich# EndIf
Saluto, Frank |
|
|
| |
|
|