Allgemeine Fragen zur PROFAN Programmierung

Views (Heute): 249375 (10811)

| Suchen
| Zurück zur Übersicht

Autor | Thema: Datenbankzugriff
Daniel Hecken
| Datum:02.11.01 10:34 (privat@daniel-hecken.de) |
Hallo, ich möchte ein Programm programmieren, das auf eine Datenbank eines anderen Programm zugreift. Auf eine Anfrage wie die Datei aufgebaut ist, schriebt der Autor folgendes: TYPE DSFzg Kennung AS STRING * 8 Fzgname AS STRING * 10 Info AS STRING * 20 Status AS INTEGER Datum AS STRING * 8 Folgetlg AS INTEGER Datentlg AS STRING * 100 Anzeige AS INTEGER Bemerkung AS STRING * 256 END TYPE Wenn ich die Datenbank in NotePad oder in einen anderen Textprogramm öffne, scheint alles in Klartext zu stehen, aber vollkommen durcheinander. Wie kann ich die Datenbankdatei jetzt in Profan nutzten. In der Hilfe steht von Profan stehen folgende Befehle, die wie ich meine evtl. zur Lösung betragen könnten ( sicher bin ich mich aber nicht): - Struct - Declare, DIM ( klar ! ) - Readtext ??? Oder muß ich die Datei Binär öffnen ? Dann bekomme ich aber nur Zahlen raus, kein Text. Und DB3 ist es auch nicht, Profan bricht mit einer Fehlermeldung ab. Die Daten sollen in einer Tabelle ( die durch die PowerDll erzeugt werden ) angezeigt werden. Wenn die notwendigkeit besteht, könnte ich auch zum Testen eine TEST Datenbank anbieten. Ebenfalls stehe ich für weitere Informationen bereit. Mit freundlichen Grüßen Daniel Hecken www.daniel-hecken.de
Thorsten
| Datum:02.11.01 14:06 (mrk@mrk-soft.de) |
Hallo Daniel, wie du schon richtig erkannt hast, handelt es sich um eine Strucktur, die du BINÄR einlesen must. Ein Datensatz der Strucktur beinhaltet 405 Bytes. Die Kennung , was als erstes im Datensatz steht, ist ein Strint, der eine feste länge von 8 Zeichen hat, danach folgt ebenfalls ein String mit einer festen länge von 10 Zeichen, usz. alles zusammensumierit, ergibt 405 Zeichen.
    'für profan 7.0
    declare dsatz#, lof&, fpos&
    'hier muss er rest declariert werden, ....

    dim dsatz#,405

    Assign #1,"datei.xyz"
    Open RW #1
    lof& = GetFileSize(#1)
    While lt(fpos&,lof&)
     BlockRead(#1,dsatz#,0,405) 'einlesen
     print char$(dsatz#,0,8)   'Kennung
     print char$(dsatz#,8,10)  'Fzgname
     print char$(dsatz#,18,20) 'info
     print char$(dsatz#,38,1)  'status
     print char$(dsatz#,39,8)  'datum
     'usw.
      fpos& = add(fpos&,405)
    Wend
    CloseRW #1

    dispose dsatz#
Anstatt Print kannste natürlich das ganze auch einer Variable Zuweisen kennung$ = char$(dsatz#,0,8) 'Kennung Wenn es dennoch Probleme geben sollte, melde dich nochmal und sende die Datei mal zu. Thorsten
Daniel Hecken
| Datum: 02.11.01 21:41 (privat@daniel-hecken.de) |
Hallo Thorsten, vielen Dank für deine schnelle Antwort. Bis auf die Datensatzlänge (408 statt 405, weil INTEGER bei dieser Datei 2 stellig sind, was du aber nicht wissen konntest) stimmte alles. Ist aber genau das was ich gesucht habe! Vielen Dank nocheinmal Gruß Daniel

| Zurück zur Übersicht