Allgemeine Fragen zur PROFAN Programmierung

Views (Heute): 242988 (4424)

| Suchen
| Zurück zur Übersicht

Autor | Thema: Suche Routine zum abspeichern
Manfred Loibl
| 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
Philipp Sternberg
| 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
Manfred Loibl
| 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
Philipp Sternberg
| 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
Mnafred Loibl
| Datum: 10.05.02 12:40 (gp2@gmx.de) |
Danke für alles Manfred Loibl

| Zurück zur Übersicht