2012-01-27 6 views
2

루아와 함께 문자열 내에서 16 진수 인쇄 할 수없는 문자 00h를 찾으려고합니다. 이스케이프 문자로 시도해 보았고 결과적으로 내가 시작하는 동일한 위치 (인쇄 가능한 문자)를 얻습니다. 나는 캐릭터 수업을 들으며 주변을 둘러 보았지만 그게 아무 것도 아니었다. 내 방법은 다음과 같습니다루아 : 문자열에서 16 진수 값을 찾습니다.

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

나는 또한이 방법을 시도했지만 운 :

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

가 어떻게 루아에있는이 비 인쇄 패턴을 찾을 수 있습니까?

+0

당신은 하나의 0으로'위치 = string.find (변수, "\ 0", startlocation)를'시도해 봤어? – dasblinkenlight

+0

하나, 둘 또는 세 개의 0이 동일한 것입니다. – lhf

+3

패턴에서 0 문자에'% z '를 사용하면 안됩니다 (적어도 5.1에서)? – jpjacobs

답변

2

그것은 나를 위해 잘 작동 :

> 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

흠, 그럼 내 코드에서 오류가 있어야합니다. 다른 변수를 확인해야합니다. – Zerobinary99

+0

@ Zerobinary99,'string.char (00)'은 길이가 1 인 문자열을 반환하며 바이트 만이 0이고 이것은 정확히 ""\ 0 "'입니다. 'print (string.char (00) == "\ 0")'을 시도하십시오. – lhf

+0

나는 그저 나 자신을 테스트했다;) 따라서 나의 초기 메시지를 편집했다. 당신이 그것을보기 전에 나의 잘못된 가정을 바로 잡을 수 있다고 생각 했었지만 당신은 더 빨랐다.) – Zerobinary99

관련 문제