Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Gregor
Anmeldungsdatum: 22.06.2005 Beiträge: 2
|
Verfasst am: 22.06.2005, 22:18 Titel: MKD/CVD-Format gesucht |
|
|
Hallo Leute
Der MKD-Befehl setzt eine Double-precision Gleitpunktzahl (8 Bytes) in ein String-Format um (ebenfalls 8 Bytes). Ich bin nun auf der Suche nach dem genauen Format, wie diese Umsetzung erfolgt.
Hintergrund: Ich möchte mit Excel-VBA (Visual Basic for Applications) ältere Dateien lesen, die Double-precision Gleitpunktzahlen im oben angesprochenen Format enthalten. Excel-VBA enthält aber den erforderlichen CVD-Befehl nicht mehr und ich muß es jetzt selbst programmieren.
Leider konnte ich bisher das "MKD/CVD-Format" nirgends finden. Es wäre toll, wenn mir jemand von Euch mit einer Dokumentation weiterhelfen könnte.
Viele Grüße
Gregor |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 22.06.2005, 22:24 Titel: |
|
|
Hallo.
Schreib dir doch in QuickBasic ein entsprechendes Programm und lass dir von dem dann den ausgelesenen Wert geben.
Sprich du startest das QuickBasic Programm mit dem nicht lesbaren Dokument als Parameter (COMMAND$) und das QuickBasic Programm schreibt das Ergebnis in eine Datei, die du mit VBA ausliest.
Viele Grüße!
Sebastian _________________
Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen! |
|
Nach oben |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
|
Nach oben |
|
 |
Gregor
Anmeldungsdatum: 22.06.2005 Beiträge: 2
|
Verfasst am: 23.06.2005, 22:32 Titel: |
|
|
Hallo Sebastian und dreael
Danke für Eure Beiträge. Es ist natürlich möglich, ein kleines QBasic-Programm zu schreiben, das die alten Datensätze einliest und die Gleitpunktzahlen als ASCII-Zeichenfolgen in eine Datei abspeichert. Von dort können dann die Zahlen leicht von Excel-VBA gelesen werden.
Ich stelle derzeit ein Buchhaltungsprogramm von GW-Basic auf Excel-VBA um und wollte den Benutzern den oben beschriebenen Zwischenschritt aus Komfortgründen ersparen, sprich: Excel-VBA soll direkten Zugriff auf die alten Datensätze haben.
Bei der Durchsicht der von dreael angegebenen Seite ist mir folgendes Code-Fragment aufgefallen:
40 BY%=ASC(MID$(MKS$(F!),I%,1))
Es kann durchaus sein, daß MKS$ und MKD$ nur Formsache sind, wie es bei MKI$ der Fall ist. MKI$ sorgt nur dafür, daß die beiden Integer-Bytes im Format "Little Endian" auf der Festplatte gespeichert werden. Ich werde mir mal die interne Darstellung der Gleitpunktzahlen ansehen und die gespeicherte Form mit einem Hex-Editor betrachten. Wahrscheinlich handelt es sich nur um eine spezielle Byteabfolge aus der Gleitpunktzahl ohne daß die Bytes selbst verändert werden.
Gruß
Gregor |
|
Nach oben |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 23.06.2005, 23:28 Titel: |
|
|
Die CVx()- und MKx$()-Funktionsfamilien entsprechen eigentlich nur dem sog. Type Casting aus C/C++, bei ADA als unchecked_conversion() bezeichnet. Technisch interpretiert man einen bestimmten Bitmuster-Speicherinhalt im RAM als etwas anderes. _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
 |
|