11-12-2013 04:07 AM
Hallo,
Ich würde gerne die Zahlen oZahl.Values(i) welche als String formatiert sind, einzeln in einen Float umwandeln. Könnt ihr mir bitte einen Tipp geben, wie das funktionieren soll.
Ansonsten erhalte ich folgenden Fehler:
Dieser Kanal wurde mit dem Typ DataTypeFloat64 erzeugt. Die Werte, die Sie zum Füllen verwenden, dürfen nicht vom Typ vbString sein.
Vielen Dank im Voraus.
- Mosquito
11-12-2013 04:18 AM
Mit Cdbl(oZahl.Values(i)) bekomme ich die selbe Fehlermeldung.
11-13-2013 02:50 AM
Hallo Mosquito,
ich möchte mich Otmar anschließen. Wie er hier schreibt, sollten die Frage erstmal geklärt werden, warum die Daten als String vorliegen.
Soweit ich verstanden habe, bekommst du Zahlen als String, möchtest du damit irgendwas machen und dann in einem Kanal ablegen.
Wie kommen die Werte in das Array des Objekts? warum liegen diese als String vor? Was machst du mit den Daten und warum sollen die anschließend im Kanal abgelegt werden?
Prinzipiell funktiniert der Vorschlag von Otmar.
Wenn die Zahlen als string richtig formatiert vorliegen("1" oder " 1 ") kann man die werte ohne weiteres verrechnen und kann diese beispielsweise in einem Kanal ablegen.
Beides ist im angehängten Beispiel zu finden. Ich habe es in DIAdem 2011 und DIAdem 2012 getestet. Beides funktioniert!
Man sollte an der Stelle der Frage nachgehen, warum hier die Daten nach der Umwandlung als String vorliegen. Dazu müsste man den Quellcode anschauen und debuggen. Aus einem Befehl kann man nicht auf den Programmablauf schließen.
Debuggen wird ausführlich im DIAdem Advanced Kurs erklärt.
class test
dim mynArray(10) ' Numerisches Array
dim mysArray(10) ' String Array
end class
dim oObject
set oObject = new test
oObject.mynArray(0)= 1
oObject.mysArray(0)= "eins"
oObject.mysArray(1)= " 1"
'call Msgbox( cdbl(oObject.mysArray(1)) ) ' Konvertierungs-Befehl cdbl
'Data.Root.ChannelGroups(1).Channels(1).Values(1) = cdbl(oObject.mysArray(1))
oObject.mynArray(1) = oObject.mynArray(0) + oObject.mysArray(1) ' Verrechnung
call Msgbox(oobject.mynArray(1))
Mit freundlichen Grüßen,
Philipp K.
AE | NI Germany
11-15-2013 04:54 AM
Vielen Dank für die Antwort! 🙂
Beste Grüße.