Allgemeine Fragen zur PROFAN Programmierung
Views (Heute): 242988 (4424)
  Suchen
 Zurück zur Übersicht
 AutorThema: Suche Routine zum abspeichern
Manfred Loibl
Datum:08.05.02 18:19 Antwortenals Email verschicken (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


Philipp Sternberg
Datum:08.05.02 21:29 Antwortenals Email verschicken (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


Manfred Loibl
Datum:08.05.02 23:35 Antwortenals Email verschicken (gp2@gmx.de) 


Suche eigentlich eine Variante im normalem ASCI Format

z.b. "Alfred,Maier,Hauptstr. usw"

an Pos. Nr 32

Manfred Loibl



Philipp Sternberg
Datum:09.05.02 16:32 Antwortenals Email verschicken (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


Mnafred Loibl
Datum: 10.05.02 12:40 Antwortenals Email verschicken (gp2@gmx.de) 


Danke für alles

Manfred Loibl


 Zurück zur Übersicht