home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Programming Tool Box
/
SIMS_2.iso
/
bp_3_94
/
vbdos
/
zugriff.bas
< prev
Wrap
BASIC Source File
|
1994-05-26
|
2KB
|
81 lines
CONST TInteger = 1, TLong = 2, TSingle = 3
CONST TDouble = 4, TCurrency = 5
TYPE AdressenTyp
Name AS STRING * 40
Strasse AS STRING * 40
Ort AS STRING * 40
Bestellungen AS INTEGER
END TYPE
TYPE DatenBeschreibType
Name AS STRING * 40
Typ AS INTEGER
Offset AS INTEGER
END TYPE
TYPE AdressenTypDummy
Text AS STRING * 162 ' 40+40+40+2!
END TYPE
DIM SHARED DB(1 TO 4) AS DatenBeschreibType
DB_Init
' Erzeugt das Feld, das den Datentyp beschreibt
SUB DB_Init ()
DIM i AS INTEGER, Offset AS INTEGER, Laenge AS INTEGER
DB(1).Name = "NAME": DB(1).Typ = -40
DB(2).Name = "STRASSE": DB(2).Typ = -40
DB(3).Name = "ORT": DB(3).Typ = -40
DB(4).Name = "BESTELLUNGEN": DB(4).Typ = TInteger
Offset = 1
FOR i = 1 TO UBOUND(DB)
DB(i).Offset = Offset
SELECT CASE DB(i).Typ
CASE TInteger: Laenge = 2
CASE TSingle, TLong: Laenge = 4
CASE TDouble, TCurrency: Laenge = 8
CASE ELSE: Laenge = ABS(DB(i).Typ)
END SELECT
Offset = Offset + Laenge
NEXT
END SUB
' Erzeugt einen String aus einem strukturierten Datentyp
FUNCTION MakeString (Daten AS AdressenTyp) AS STRING
DIM Dummy AS AdressenTypDummy
LSET Dummy = Daten
MakeString = Dummy.Text
END FUNCTION
' Um einen Teilstring aus dem Gesamtdatenstring zu entnehmen
FUNCTION NimmString (Daten AS STRING, Nr AS INTEGER) AS STRING
NimmString = MID$(Daten, DB(Nr).Offset, ABS(DB(Nr).Typ))
END FUNCTION
' Um eine Zahl aus dem Gesamtdatenstring zu entnehmen
' Typ = DOUBLE, damit allgemein verwendbar; verwenden Sie
' z.B. nur INTEGER, ist Änderung sinnvoll!
FUNCTION NimmZahl (Daten AS STRING, Nr AS INTEGER) AS DOUBLE
SELECT CASE DB(Nr).Typ
CASE TInteger: NimmZahl = CVI(MID$(Daten, DB(Nr).Offset, 2))
CASE TSingle: NimmZahl = CVS(MID$(Daten, DB(Nr).Offset, 4))
CASE TLong: NimmZahl = CVL(MID$(Daten, DB(Nr).Offset, 4))
CASE TDouble: NimmZahl = CVD(MID$(Daten, DB(Nr).Offset, 8))
CASE TCurrency: NimmZahl = CVC(MID$(Daten, DB(Nr).Offset, 8))
END SELECT
END FUNCTION