Allgemeine Fragen zur PROFAN Programmierung
Views (Heute): 249375 (10811)
  Suchen
 Zurück zur Übersicht
 AutorThema: Datenbankzugriff
Daniel Hecken
Datum:02.11.01 10:34 Antwortenals Email verschicken (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 Antwortenals Email verschicken (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 Antwortenals Email verschicken (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