NULL in Zeichenkette erkennen
-
Hallo,
ich benutze den OpenFile-Dialog von den Commoncontrols. Bei meiner OPENFILENAME-Struktur habe ich u.a. das Flag OFN_ALLOWMULTISELECT gesetzt. Laut MSDN ist dann der Dateiname:
...the directory and file name strings are NULL separated...
Das stimmt so weit.
Welche Möglichkeit gibt es diese NULL-Zeichen zu erkennen? Normalerweise ist ja nach dem ersten NULL Schluß.mfg
rolsch
-
Deine Ausgangsaddresse + Stringlängen(+1) bis jetzt = Anfang nächster String.
char temp[] = "test\0test2\0\0"; char* tempadr = temp; while(strlen(tempadr) > 0) { // TODO tempadr verarbeiten tempadr += strlen(temp); ++tempadr; }Stellt sich nur dieFrage wie dudas wirkliche Ende dann mitbekommst. (Ich gehe hier mal von doppeltem NULL aus.)
-
Vielen Dank für den Tip, genau das hab ich gesucht.
Stellt sich nur dieFrage wie dudas wirkliche Ende dann mitbekommst.
tja, in der MSDN steht weiter
with an extra NULL character after the last file name.
hat sich also geklärt.
Ja, und den einen Fehler hast du schon selbst gefunden. Da ist noch einer, es muß so heißen:
tempadr += strlen(tempadr);Sonst bekommt man Probleme wenn die einzelnen Zeichenketten unterschiedlich lang sind.
Aber trotzdem noch mal vielen Dank.
mfg
rolsch