Autor | Thema: Suche Routine zum abspeichern | | Datum:08.05.02 18:19 
(gp2@gmx.de) | |
Suche Routine, zum Speichern eines Datensatzes, auf die Festplatte an einer festen Position.
z.B. An die Stelle 10, in meiner Datenbank
MFG
Manfred Loibl
|
| | Datum:08.05.02 21:29 
(ps@burghardt-ib.de) | |
Wie genau wolltest du den Satz den Abspeichern ?
Als Text Datei ??? oder Binär:
Hier ein Beispiel für Text:
'Speichert einen Satz im aktuellen Verzeichenes als Satznummer.rec
proc saverec
parameters record&
declare name$,feldinhalt$
@dbopen(#1,"adressen.dbf")
@dbuse (#1)
ifnot @gt(record&,&dbRecCount) 'gewährleisten, dass der Satz auch existiert
@dbgo(record&) 'zum gewünschten Satz wechslen
let name$ = @add$(@str$(&dbRecNo),".rec")
assign #2,name$
rewrite #2
whileloop %dbFCount 'Alle Felder in die Tetdatei Setzen
feldinhalt$ = @dbGetField$(&loop)
Print #2,feldinhalt$
wend
close #2
endif
@dbclose(#1)
return name$
endproc
'Hauptprogramm:
Print "extrahiere Satz 32"
waitkey
saverec 32
Print "Satz wurde wurde gespeichert in " + @$(0)
waitkey
end
Deine Text Datei sieht dann so aus:
FELD1
FELD2
FELD3
FELD4
...
Also für eine typische Adressdatenbank so:
Mustermann
Peter
Domplatz 15
21339
Lüneburg
....
Du musst beim wieder einlesen allerdings darauf achten dass du die Datentypen richtig reinbekommst in der Datei ist jetzt alles im "String"-Format.
Philipp Sternberg
|
| | Datum:08.05.02 23:35 
(gp2@gmx.de) | |
Suche eigentlich eine Variante im normalem ASCI Format
z.b. "Alfred,Maier,Hauptstr. usw"
an Pos. Nr 32
Manfred Loibl
|
| | Datum:09.05.02 16:32 
(ps@burghardt-ib.de) | |
Kein Problem, du musst nur die Prozedur etwas modifizieren:
proc saverec
parameters record&
declare name$,feldinhalt$
@dbopen(#1,"adressen.dbf")
@dbuse (#1)
ifnot @gt(record&,&dbRecCount) 'gewährleisten, dass der Satz auch existiert
@dbgo(record&) 'zum gewünschten Satz wechseln
let name$ = @add$(@str$(&dbRecNo),".rec")
assign #2,name$
rewrite #2
whileloop %dbFCount
let feldinhalt$ = @add$(feldinhalt$,@add$(@dbGetField$(&loop),",")) 'Trennzeichen ","
wend
let feldinhalt$ = @Left$(feldinhalt$,@sub(@len(feldinhalt$),1) 'letztes Komma beseitigen
Print #2,feldinhalt$
close #2
endif
@dbclose(#1)
return name$
endproc
Dann hat deine Datei die Felder so wie du sie hhaben willst (.csv)
Philipp
|
| | Datum: 10.05.02 12:40 
(gp2@gmx.de) | |
Danke für alles
Manfred Loibl
|
|
|