PRB: Conversione MBF IEEE in Visual Basic per Windows

Traduzione articoli Traduzione articoli
Identificativo articolo: 140520 - Visualizza i prodotti a cui si riferisce l?articolo.
Questo articolo Ŕ stato archiviato. L?articolo, quindi, viene offerto ?cosý come Ŕ? e non verrÓ pi¨ aggiornato.
Espandi tutto | Chiudi tutto

In questa pagina

Sintomi

I file di dati creati con prodotti Microsoft Basic precedenti (base veloce GW-Basic e Basica (IBM e Compaq licenza Basic)) potrebbero non essere leggibili da Visual Basic per Windows.

Cause

Prima per il mobile IEEE punto da standard ampiamente accettato, Microsoft ha utilizzato un formato di virgola mobile interno noto come Microsoft Binary Format (MBF). Lo standard IEEE Ŕ stata introdotta in un secondo momento ed Ŕ diventato il settore standard.

Le versioni precedenti di Microsoft QuickBASIC e GW-Basic supportate solo formato MBF. In Microsoft Basic Professional Development System (PDS) e Visual Basic per MS-DOS, funzioni sono disponibili per la conversione tra MBF e IEEE formati. Come Microsoft spostato verso l'accettazione completa dello standard IEEE, tuttavia, supportano per il formato MBF Ŕ stato rimosso.

Visual Basic per Windows utilizza lo standard di IEEE. Il formato MBF, tuttavia, Ŕ incompatibile con lo standard IEEE e i dati salvati in questo modo non sarÓ leggibili.

Risoluzione

Il PDS e la Visual Basic per MS-DOS prodotti contenuti funzioni per la conversione tra formato MBF e formato IEEE. Queste funzioni non sono disponibili in Visual Basic per Windows. Di seguito sono due possibili soluzioni a questo problema:
  1. Un programma pu˛ essere scritti in PDS o in Visual Basic per MS-DOS che ricrea il file contenente i dati MBF. Dopo aver letto le informazioni del file in PDS o Visual Basic per MS-DOS, Ŕ possibile utilizzare le funzioni di $ MKxMBF (vedere i manuali per PDS o Visual Basic per MS-DOS o Guida in linea menu) per convertire i dati in formato IEEE. Questo metodo Ŕ consigliato per due motivi:
    • Converte i dati in IEEE in modo che altri programmi possano accedere i file.
    • Se si utilizza il metodo 2, Ŕ necessario una DLL aggiuntiva che Ŕ necessario distribuire con l'applicazione.
  2. In precedenza, non era alcun modo per convertire i dati di Visual Basic per Windows. Ma Ŕ presente una DLL disponibile per effettuare questa operazione. Questa DLL (MBF2IEEE.DLL) contiene le funzioni che simulano le funzioni MKS, MKD, CVS e CVD che erano presenti in alcuni dei prodotti base basati su MS-DOS. Queste funzioni di (MKS, MKD, CVS e CVD) non sono disponibili in Visual Basic per Windows, pertanto la necessitÓ di questa DLL. La sezione informazioni riportata di seguito fornisce informazioni dettagliate sulla DLL e le modalitÓ per il download dall'area Download Microsoft.

Status

Questo comportamento legato alla progettazione.

Informazioni

Dettagli sul metodo 2: Utilizzo Mbf2ieee.dll

Nota: Queste funzioni in tutti i eseguono la conversione tra formato binario di Microsoft (MBF) e IEEE valori a virgola mobile. Alcuni dei pi¨ recenti basati su MS-DOS base prodotti era versioni di queste funzioni che funzionava in modo diverso. Ad esempio, consentono osservare un numero IEEE sotto forma di stringa senza convertirlo MBF. Le routine descritte di seguito vengono fornite solo come metodo di recupero dei dati MBF precedenti.

Queste funzioni forniscono le conversioni tra IEEE valori a virgola mobile e Mobile in formato binario di Microsoft (MBF) punto di valori. Di seguito Ŕ un insieme di istruzioni che devono essere inclusa in un programma Basic Visual che chiama queste funzioni di dichiarare:
   Public Declare Function Cvs Lib "MBF2IEEE.DLL" (X As String) As Single
   Public Declare Function Cvd Lib "MBF2IEEE.DLL" (X As String) As Double
   Public Declare Function Mks Lib "MBF2IEEE.DLL" (X As Single) As String
   Public Declare Function Mkd Lib "MBF2IEEE.DLL" (X As Double) As String
				

Di seguito Ŕ una descrizione di ciascuna di queste funzioni insieme con un esempio.

CVS e funzioni CVD

Queste funzioni accettano un a 4 byte (CVS) o di una stringa (CVD) a 8 byte come argomento. Si aspettano che lo schema di bit di questa stringa per rappresentare una precisione singola o doppia, valore MBF, rispettivamente. Il risultato di funzione restituisce un IEEE.
   Dim MBF As String, IEEE As Single
   ' load the string from a file, etc.
   IEEE = CVS(MBF)
				

Funzioni MKD e MKS

Tali funzioni accettano un singolo IEEE (MKS) o doppia (MKD) come argomento valore di precisione. Quindi converte questo valore in un valore MBF a 4 byte o 8 byte e li restituisce nella stringa.
   Dim MBF AS String, IEEE As Single
   MBF = MKS(IEEE)
   ' Now write the MBF value out to disk
				

Potenziali problemi

Vi sono differenze tra il formato IEEE e MBF. Per questo motivo precisione vadano perduti durante le conversioni. ╚ inoltre possibile che un numero non pu˛ essere convertito tra i due formati. Se questo Ŕ il caso, un Overflow Visual Basic (errore n. 6) viene generato. Si tratta di un errore intercettabile, quindi gestire l'errore di conseguenza.

Come ottenere Mbf2ieee.dll

Il seguente file Ŕ disponibile per il download dall'Area download Microsoft:
Mbf2ieee.exe
Per ulteriori informazioni su come scaricare file di supporto Microsoft, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito riportato:
119591Come ottenere file di supporto Microsoft dai servizi online
Microsoft analizzati questo file per individuare eventuali virus. Microsoft ha utilizzato il software antivirus pi¨ recente disponibile alla data di pubblicazione del file. Il file Ŕ archiviato in server con protezione avanzata per impedire modifiche non autorizzate al file. Dopo avere scaricato Mbf2ieee.exe, eseguirlo per ottenere Mbf2ieee.dll con i file di origine e un file Mbf2ieee.txt, ovvero un file readme che contiene il testo di questo articolo.

Codice sorgente inclusi in Mbf2ieee.exe

Oltre alle DLL stessa, viene fornito anche il codice sorgente, pertanto Ŕ possibile apportare modifiche e ricompilare se si dispone di c. Microsoft Per ricompilare e generare un nuovo file dll, Ŕ necessario utilizzare Microsoft C, poichÚ le routine sono specifiche per Microsoft C e si basano su quella di che Microsoft C restituisce valori di virgola mobile. Il codice sorgente non viene compilato con il c di Borland.

Ricompilare con Microsoft C, utilizzare le istruzioni della riga di comando riportate di seguito per generare la DLL:
    cl -ALw -Ow -W2 -Zp -Tp mbf2ieee.c
    link /nod c:\vb\cdk\vbapi.lib mbf2ieee, mbf2ieee.dll, NUL, sdllcew
       oldnames libw, mbf2ieee
    rc -t mbf2ieee.dll
    implib mbf2ieee.lib mbf2ieee.def
				

ProprietÓ

Identificativo articolo: 140520 - Ultima modifica: domenica 9 febbraio 2014 - Revisione: 2.2
Le informazioni in questo articolo si applicano a:
  • Microsoft Visual Basic 4.0 Professional Edition
  • Microsoft Visual Basic 4.0 a 16 bit Enterprise Edition
Chiavi:á
kbnosurvey kbarchive kbmt kbdownload kb16bitonly kbfile kbprb kbsample KB140520 KbMtit
Traduzione automatica articoli
Il presente articolo Ŕ stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non Ŕ sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, pi¨ o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non Ŕ la sua. Microsoft non Ŕ responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 140520
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com