Array mit gemischten Variablentypen

Anfängerfragen zum Programmieren mit PureBasic.
SBond
Beiträge: 266
Registriert: 22.05.2013 20:35

Array mit gemischten Variablentypen

Beitrag von SBond »

Hi leute,

kann man in PB Arrays erstellen, die sowohl Zahlen als auch Text enthalten?

so etwas hatte ich mal in AutoIt und möchte es nun in PB umsetzen. AutoIt hat Zahlen als Zahlen behandelt und nicht als Text, daher musste man keine Variablentypen konvertieren. In PB kann ich aber scheinbar nur ein Variablentyp haben.

Code: Alles auswählen

Global $Var_Hardware[50][50]						; Array erstellen

$Var_Hardware[0][0]		= "Freaduino"				; Hersteller
$Var_Hardware[0][1]		= "Mega2560 v1.4"			; Modell
$Var_Hardware[0][2]		= 54 						; anzahl der digitalen I/O Pins
$Var_Hardware[0][3]		= 16						; anzahl der analogen Eingänge
$Var_Hardware[0][4]		= "2,3,4,5,6,7,8,9,10,11,12,13"	; Auflistung der PWM-Pins (mit komma trennen)
$Var_Hardware[0][5]		= "2,3,18,19,20,21"			; Auflistung der Interrupt-Pins (mit komma trennen)
$Var_Hardware[0][6]		= 16.0					; Taktfrequenz in MHz (Quarz)
...
$Var_Hardware[1][0]		= "Arduino"					; Hersteller
$Var_Hardware[1][1]		= "Mega 2560 R3"				; Modell
$Var_Hardware[1][2]		= 54 						; anzahl der digitalen I/O Pins
$Var_Hardware[1][3]		= 16						; anzahl der analogen Eingänge
$Var_Hardware[1][4]		= "2,3,4,5,6,7,8,9,10,11,12,13"	; Auflistung der PWM-Pins (mit komma trennen)
$Var_Hardware[1][5]		= "2,3,18,19,20,21"			; Auflistung der Interrupt-Pins (mit komma trennen)
$Var_Hardware[1][6]		= 16.0					; Taktfrequenz in MHz (Quarz)
...
...
...
41 6c 73 6f 20 77 65 6e 6e 20 64 75 20 73 6f 20 76 69 65 6c 20 4c 61 6e 67 65 77 65 69 6c 65 20 68 61 73 74 2c 20 64 61 6e 6e 20 6b 61 6e 6e 73 74 20 64 75 20 61 75 63 68 20 67 6c 65 69 63 68 20 7a 75 20 6d 69 72 20 6b 6f 6d 6d 65 6e 20 75 6e 64 20 61 62 77 61 73 63 68 65 6e 2e

:D
SBond
Beiträge: 266
Registriert: 22.05.2013 20:35

Re: Array mit gemischten Variablentypen

Beitrag von SBond »

Ich glaube ich bin gerade auf die Lösung gestolpert:

Beispiel aus der PB-Hilfe ("Structure"):

Code: Alles auswählen

  Structure Person
    Name.s
    ForName.s 
    Age.w 
  EndStructure
  
  Dim MyFriends.Person(100)
  
  ; Hier wird die Position '0' des Arrays MyFriend()
  ; eine Person und deren Informationen enthalten.
  
  MyFriends(0)\Name = "Andersson"
  MyFriends(0)\Forname = "Richard" 
  MyFriends(0)\Age = 32
41 6c 73 6f 20 77 65 6e 6e 20 64 75 20 73 6f 20 76 69 65 6c 20 4c 61 6e 67 65 77 65 69 6c 65 20 68 61 73 74 2c 20 64 61 6e 6e 20 6b 61 6e 6e 73 74 20 64 75 20 61 75 63 68 20 67 6c 65 69 63 68 20 7a 75 20 6d 69 72 20 6b 6f 6d 6d 65 6e 20 75 6e 64 20 61 62 77 61 73 63 68 65 6e 2e

:D
Benutzeravatar
helpy
Beiträge: 636
Registriert: 29.08.2004 13:29

Re: Array mit gemischten Variablentypen

Beitrag von helpy »

Hallo SBond,

solch einen Datentyp gibt es nicht in PureBasic.
VisualBasic kennt so etwas (Variant) aber nicht PureBasic.

Du könntest Array in Kombination mit einer Struktur versuchen.
Das würde Deinem Problem am nächsten kommen:

Code: Alles auswählen

EnableExplicit

Structure tHardware
	Hersteller.s
	Modell.s
	DigitalIOs.i
	AnalogIOs.i
	PWM_Pins.s
	Interrupt_Pins.s
	TaktfrequenzMHz.f
	; ...
EndStructure

Global Dim HardwareArray.tHardware(50)

HardwareArray(0)\Hersteller      = "Freaduino"             ; Hersteller
HardwareArray(0)\Modell          = "Mega2560 v1.4"         ; Modell
HardwareArray(0)\DigitalIOs      = 54                      ; anzahl der digitalen I/O Pins
HardwareArray(0)\AnalogIOs       = 16                      ; anzahl der analogen Eingänge
HardwareArray(0)\PWM_Pins        = "2,3,4,5,6,7,8,9,10,11,12,13"   ; Auflistung der PWM-Pins (mit komma trennen)
HardwareArray(0)\Interrupt_Pins  = "2,3,18,19,20,21"       ; Auflistung der Interrupt-Pins (mit komma trennen)
HardwareArray(0)\TaktfrequenzMHz = 16.0                    ; Taktfrequenz in MHz (Quarz)
; ...

HardwareArray(1)\Hersteller      = "Arduino"               ; Hersteller
HardwareArray(1)\Modell          = "Mega 2560 R3"          ; Modell
HardwareArray(1)\DigitalIOs      = 54                      ; anzahl der digitalen I/O Pins
HardwareArray(1)\AnalogIOs       = 16                      ; anzahl der analogen Eingänge
HardwareArray(1)\PWM_Pins        = "2,3,4,5,6,7,8,9,10,11,12,13"   ; Auflistung der PWM-Pins (mit komma trennen)
HardwareArray(1)\Interrupt_Pins  = "2,3,18,19,20,21"       ; Auflistung der Interrupt-Pins (mit komma trennen)
HardwareArray(1)\TaktfrequenzMHz = 16.0                    ; Taktfrequenz in MHz (Quarz)
; ...

; ...
; ...
Vielleicht hilft Dir das ein wenig weiter.

lg,
guido
Windows 10
PB Last Final / (Sometimes testing Beta versions)
SBond
Beiträge: 266
Registriert: 22.05.2013 20:35

Re: Array mit gemischten Variablentypen

Beitrag von SBond »

Jap, super :D

ja, auf die structure bin ich etwas zu spät gekommen. So ist es auch gut, ...sogar besser ;)


vielen Dank
41 6c 73 6f 20 77 65 6e 6e 20 64 75 20 73 6f 20 76 69 65 6c 20 4c 61 6e 67 65 77 65 69 6c 65 20 68 61 73 74 2c 20 64 61 6e 6e 20 6b 61 6e 6e 73 74 20 64 75 20 61 75 63 68 20 67 6c 65 69 63 68 20 7a 75 20 6d 69 72 20 6b 6f 6d 6d 65 6e 20 75 6e 64 20 61 62 77 61 73 63 68 65 6e 2e

:D
Antworten