LabVIEWForum.de
Char* in String Array Konvertieren - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: DLL & externer Code (/Forum-DLL-externer-Code)
+---- Thema: Char* in String Array Konvertieren (/Thread-Char-in-String-Array-Konvertieren)



Char* in String Array Konvertieren - Ralle - 11.12.2007 11:02

Hallo,

ich versuche zur Zeit eine DLL in Lebview8.5 einzubinden. Folgende Funktion bereitet mir zur Zeit Probleme:

int "Länge der NamenListe in byte" = TSRW_GetAvailablePorts(char* NamenListe, int nBufferSize);

Zurück bekomme ich lediglich den ersten Listeneintrag und nicht die komplette Liste als Array (Was auch logisch ist Angry).
Wie kann ich die komplette Liste auslesen?
Mein Programm sieht wie folgt aus:

Lv85_img[attachment=10280]


Char* in String Array Konvertieren - IchSelbst - 11.12.2007 18:29

' schrieb:Zurück bekomme ich lediglich den ersten Listeneintrag und nicht die komplette Liste als Array (Was auch logisch ist Angry).
Wie kann ich die komplette Liste auslesen?
Zurück kommen tut bestimmt die komplette Liste. Nur: Jedes Listenelement endet mit eine binären Null - Ende eines PChars. Wenn du dann die "Liste" einem String zuweist, wird der "String" bei der Null abgeschnitten.

Du könntest wie folgt vorgehen: Übergib keinen String an den DLL-Knoten, sondern ein Array of U8 (respektive einen Pointer darauf). Das Ergebnis sieht im Prinzip genauso aus wie mit String. In dem Ergebnisarray scanst du jetzt nach den Nullen. Was zwischen zwei Nullen steht, sind die Daten des Strings. Die sollten mit Typcast konvertierbar sein.


Char* in String Array Konvertieren - rolfk - 11.12.2007 21:14

' schrieb:Hallo,

ich versuche zur Zeit eine DLL in Lebview8.5 einzubinden. Folgende Funktion bereitet mir zur Zeit Probleme:

int "Länge der NamenListe in byte" = TSRW_GetAvailablePorts(char* NamenListe, int nBufferSize);

Zurück bekomme ich lediglich den ersten Listeneintrag und nicht die komplette Liste als Array (Was auch logisch ist Angry).
Wie kann ich die komplette Liste auslesen?
Mein Programm sieht wie folgt aus:

[attachment=37290:TSRW_Get...blePorts.vi]

IchSelbst hat recht. Nur beim Auslesen des Arrays bitte stoppen wenn Du die Länge die von der Funktion zurückgegeben wurde oder die Länge des Arrays, was immer kürzer ist, erreicht hast.

Rolf Kalbermatter


Char* in String Array Konvertieren - Ralle - 12.12.2007 09:54

Super hat geklappt.
Das ich da nicht selber drauf gekommen bin....Wink

Danke!!! Winke