2012-01-27 2 views
2

J'essaie de trouver le caractère hexadécimal non imprimable 00h dans une chaîne avec Lua. Je l'ai essayé avec un caractère d'échappement et par conséquent je reçois le même endroit que je commence dans (c'est un caractère imprimable). J'ai joué avec les classes de personnages, mais cela ne correspond à rien. Mon approche ressemble à ceci:Lua: Trouver la valeur hexadécimale dans la chaîne

location = string.find(variable,"\00",startlocation) 

J'ai aussi essayé de cette façon, mais pas de chance:

location = string.find(variable, string.char(00),startlocation) 

Comment puis-je trouver ce modèle non imprimable dans Lua?

+0

Avez-vous essayé '= emplacement string.find (variable, "\ 0", StartLocation)' avec un seul zéro? – dasblinkenlight

+0

Un, deux ou trois zéros est la même chose. – lhf

+3

ne devriez-vous pas utiliser '% z' pour zéro caractère dans les modèles (au moins dans 5.1)? – jpjacobs

Répondre

2

Il fonctionne bien pour moi:

> return string.find("one\0two\0,three","\0,") 
8 9 
> return string.find("one\0two\0,three","\0") 
4 4 
> return string.find("one\0two\0,three","\00") 
4 4 
> return string.find("one\0two\0,three","\00",6) 
8 8 
+0

Hmm, doit être une erreur dans mon code alors. J'ai besoin de vérifier les autres variables. – Zerobinary99

+0

@ Zerobinary99, 'string.char (00)' retourne une chaîne de longueur 1 dont le seul octet est 0 et c'est exactement ce que '" \ 0 "' est. Essayez 'print (string.char (00) ==" \ 0 ")'. – lhf

+0

Je viens de tester cela moi-même;) D'où la modification de mon message initial. Je pensais pouvoir corriger ma fausse supposition avant de la voir, mais vous étiez plus rapide;) – Zerobinary99

Questions connexes