回复 11# 28002673
可以~
Local $str = _null2space(@ScriptDir & '\含null.txt')
MsgBox(0, 'null数量' & @extended, $str)
Func _null2space($sFOB, $IsFile = 1)
;$sFOB 文件路径名或二进制字符串;
;$IsFile 指定第一个参数是文件名(=1默认),否则识别为字符串
;返回值:含null字符则替换为空格并返回,替换数量保存在@extended宏中
; 不含null字符则返回字符串,并设置@Error=1
Local $sRead = $sFOB
If $IsFile Then
Local $hFO = FileOpen($sFOB, 16)
If $hFO = -1 Then Return SetError(1)
$sRead = FileRead($hFO)
FileClose($hFO)
EndIf
If Not StringRegExp($sRead, '^((?:..)*?)00') Then Return SetError(1, 0, BinaryToString($sRead))
Local $sRER = StringRegExpReplace($sRead, '((?:..)*?)00', '${1}20')
Return SetExtended(@extended, BinaryToString($sRER))
EndFunc ;==>_null2space
|