Insgesamt habe ich 16 Messkanäle, die zusammen in einer Datei untereinander (Messschritt) und nebeneinander (Kanal0...15)
durch Tabs getrennt (0...15) abgelegt werden.
Im Moment behelfe ich mir beim einlesen und ablegen der Daten im Speicher wie folgt:
Code: Alles auswählen
Enumeration
#window_User
#listicon_Kanal
EndEnumeration
Structure Messkanal
channel00.s: channel01.s: channel02.s
channel03.s: channel04.s: channel05.s
channel06.s: channel07.s: channel08.s
channel09.s: channel10.s: channel11.s
channel12.s: channel13.s: channel14.s
channel15.s
EndStructure
Global NewList DATEN.Messkanal()
Procedure DrawInterface()
If OpenWindow(#window_User, 0, 0, 1, 1, " Rohdaten anzeigen", #PB_Window_SystemMenu|#PB_Window_Invisible)
SetWindowLong_(WindowID(#window_User),#GWL_EXSTYLE,#WS_EX_TOOLWINDOW)
ResizeWindow(#window_User,#PB_Ignore,#PB_Ignore,275,500) : ShowWindow_(WindowID(#window_User),#SW_SHOW)
If CreateGadgetList(WindowID(#window_User))
ListIconGadget(#listicon_Kanal , 5, 5,130,350,"Origalwert",126,#PB_ListIcon_GridLines)
EndIf
EndIf
EndProcedure
Procedure LoadRAWData(filename.s)
ClearList(DATEN())
ClearGadgetItemList(#listicon_Original)
If ReadFile(1,filename)
;Kopfdaten überlesen, hier stehen nur angaben zu den Messgeräten.
For Row=1 To 32: dummy.s=ReadString(1): Next Row
While Eof(1)=0
din.s=ReadString(1)
AddElement(DATEN())
DATEN()\channel00.s=StringField(din, 1,Chr(9))
DATEN()\channel01.s=StringField(din, 2,Chr(9))
DATEN()\channel02.s=StringField(din, 3,Chr(9))
DATEN()\channel03.s=StringField(din, 4,Chr(9))
DATEN()\channel04.s=StringField(din, 5,Chr(9))
DATEN()\channel05.s=StringField(din, 6,Chr(9))
DATEN()\channel06.s=StringField(din, 7,Chr(9))
DATEN()\channel07.s=StringField(din, 8,Chr(9))
DATEN()\channel08.s=StringField(din, 9,Chr(9))
DATEN()\channel09.s=StringField(din,10,Chr(9))
DATEN()\channel10.s=StringField(din,11,Chr(9))
DATEN()\channel11.s=StringField(din,12,Chr(9))
DATEN()\channel12.s=StringField(din,13,Chr(9))
DATEN()\channel13.s=StringField(din,14,Chr(9))
DATEN()\channel14.s=StringField(din,15,Chr(9))
DATEN()\channel15.s=StringField(din,16,Chr(9))
Wend
CloseFile(1)
EndIf
EndProcedure
Array innerhalb der "DATEN" Liste ablegen würde... also ungefähr so:
Code: Alles auswählen
Structure Messkanal
channel.s(16)
EndStructure
Global NewList DATEN.Messkanal()
Procedure LoadRAWData(filename.s)
ClearList(DATEN())
ClearGadgetItemList(#listicon_Original)
If ReadFile(1,filename)
;Kopfdaten überlesen, hier stehen nur angaben zu den Messgeräten.
For Row=1 To 32: dummy.s=ReadString(1): Next Row
While Eof(1)=0
din.s=ReadString(1)
AddElement(DATEN())
For ch=1 to 16
DATEN()\channel(ch)=StringField(din, ch,Chr(9))
Next ch
Wend
CloseFile(1)
EndIf
EndProcedure
Wie kann man denn Arrays in einer Liste verwenden?
Kann mir da jemand von Euch vielleicht mit einem Beispiel helfen?
Thx...