Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: DatenDuck am 14.04.05 - 14:14:57
-
Hallo Leute,
eine kurze Frage in die Runde:
Eine C DLL benötigt einen verketteten "zero-terminated" String.
Wie kann ich so einen String nachbauen, bzw. wie bekomme ich das "\0" ans Ende jedes "Teilstrings"?
Reicht das evtl. schon so aus?
Dim string1 As String
Dim string2 As String
Dim erg As String
Dim nul As Variant
string1 = "Eins"
string2 = "Zwei"
nul = Null
erg = string1 & nul & string2
Vielen Dank schonmal für eure Hilfe
Bis dann,
-Moritz
-
Wie?
Null und 0 (Zero) ist nicht dasselbe. Null stellt das NichtvorhandenseinirgendeinesDatums dar, während Zero einen Wert darstellt, eben den Wert 0, da ist also durchaus was vorhanden, auch wenn es sprachlich "nichts" ist.
Die Zeroterminated Strings in C sind relativ einfach herzustellen: am Schluss (aber wirklich ganz am Schluss) des Strings ist ein Chr$(0) anzuhängen.
-
Aber ist es in C nicht so, dass ein verketteter String zwischen den ursprünglichen Einzelstrings jeweils ein "\0" einbaut und auch danach als Trennzeichen entscheidet?
-
Nein, ein \0 in einem C-String ist schlichtweg nicht möglch
-
Ok, also ist der Unterschied nicht, dass dieses Zeichen zwischen den Teilstrings hängt, sondern dass es von C als Abschluss benötigt wird, LS es aber standardmäßig nicht hintenan hängt.
Wenn ich da richtig liege, hab ich's begriffen ;)
Danke für die Hilfe!
Bis dann,
-Moritz
-
LS hängt gar nichts hinten an, LS hat intern eine Datenstruktur, in der die Länge des Strings verzeichnet ist. C eben nicht.
-
In diesem Zusammenhang sei auf die Hilfe verwiesen:
Dim varName As String [* num]
The optional num argument specifies that varName is a fixed-length string variable of num characters. A fixed-length string variable is initialized to a string of null characters (the character Chr(0)).
When you assign a string to a fixed-length string variable, LotusScript truncates a longer string to fit into the declared length. It pads a shorter string to the declared length with trailing spaces.
Fixed-length strings are often used in declaring data structures for use in file I/O or C access.
An implicitly declared String variable is always a variable-length string variable.
Andreas