Seite 1 von 1

Array mit gemischten Variablentypen

Verfasst: 10.06.2013 22:53
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)
...
...
...

Re: Array mit gemischten Variablentypen

Verfasst: 10.06.2013 23:03
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

Re: Array mit gemischten Variablentypen

Verfasst: 10.06.2013 23:13
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

Re: Array mit gemischten Variablentypen

Verfasst: 11.06.2013 01:40
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