Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

MKD/CVD-Format gesucht

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Gregor



Anmeldungsdatum: 22.06.2005
Beiträge: 2

BeitragVerfasst am: 22.06.2005, 22:18    Titel: MKD/CVD-Format gesucht Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 22.06.2005, 22:24    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2529
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 22.06.2005, 22:55    Titel: Antworten mit Zitat

Siehe ausführlicher Artikel unter

http://www.dreael.ch/Deutsch/BASIC-Knowhow-Ecke/Gleitkommazahlen.html

Dort wird der interne Aufbau speziell von Fliesskommazahlen ausführlich diskutiert.
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Gregor



Anmeldungsdatum: 22.06.2005
Beiträge: 2

BeitragVerfasst am: 23.06.2005, 22:32    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2529
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 23.06.2005, 23:28    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz