Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement MKSMBF$, MKDMBF$, CVSMBF, CVDMBF Functions #73

Open
boxgaming opened this issue Jun 14, 2023 · 0 comments
Open

Implement MKSMBF$, MKDMBF$, CVSMBF, CVDMBF Functions #73

boxgaming opened this issue Jun 14, 2023 · 0 comments
Labels
enhancement New feature or request
Milestone

Comments

@boxgaming
Copy link
Owner

MKSMBF$ and MKDMBF$ convert IEEE-format numbers to Microsoft-Binary-format numeric strings that can be stored in FIELD statement string variables. CVSMBF and CVDMBF convert those strings back to IEEE-format numbers.

MKSMBF$(single-precision-expression!)
MKDMBF$(double-precision-expression#)
CVSMBF (4-byte-numeric-string)
CVDMBF (8-byte-numeric-string)

Function Returns
MKSMBF$ A 4-byte string containing a Microsoft-Binary-format number
MKDMBF$ An 8-byte string containing a Microsoft-Binary-format number
CVSMBF A single-precision number in IEEE format
CVDMBF A double-precision number in IEEE format

These functions are useful for maintaining data files created with older versions of Basic.

Example:

TYPE Buffer
  SngNum AS STRING * 4
  DblNum AS STRING * 8
END TYPE
DIM RecBuffer AS Buffer
OPEN "TESTDAT.DAT" FOR RANDOM AS #1 LEN = 12
SNum = 98.9
DNum = 645.3235622#
RecBuffer.SngNum = MKSMBF$(SNum)
RecBuffer.DblNum = MKDMBF$(DNum)
PUT #1, 1, RecBuffer
GET #1, 1, RecBuffer
CLOSE #1
PRINT CVSMBF(RecBuffer.SngNum), CVDMBF(RecBuffer.DblNum)
@boxgaming boxgaming added this to the 0.9.0 Release milestone Jan 22, 2024
@boxgaming boxgaming added the enhancement New feature or request label Mar 25, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
Status: Todo
Development

No branches or pull requests

1 participant