モナーの *やさしい* Delphi質問スレ Ver.7
■ このスレッドは過去ログ倉庫に格納されています
0644無責任だが
NGNGしかし、これはどういう変換なんでしょう? \エスケープかと思ったら #0を平気で含んでるし
function WEcvt(const s: AnsiString): WideString;
var Sz, n: integer;
var Endian:boolean;
var p:pChar;
function getb:Char;
begin
Result:=p^;
if n>=Sz then
exit;
inc(p); inc(n);
if Result='\' then begin
Result:=p^;
case p^ of
'b': Result:=#$08;
'a': Result:=#$07;
'f': Result:=#$0C;
'r': Result:=#$0D;
't': Result:=#$09;
'v': Result:=#$0B;
'n': Result:=#13;
end;
inc(p);inc(n);
end;
end;
function getw:WideChar;
var c1,c2:Char;
begin
c1:=getb; c2:=getb;
if Endian then Result:=WideChar((ord(c1) shl 8)+ord(c2))
else Result:=WideChar((ord(c2) shl 8)+ord(c1));
if Result=#$FFFE then begin Endian:=not Endian;
Result:=#$FEFF;
end;
end;
var i:Integer;
var w:WideChar;
begin
Sz:=Length(s);
i:=0;
n:=0;
Endian:=false;
p:=PChar(s);
Setlength(Result,Sz);
repeat
w:=getw;
if w=#$FEFF then continue;
inc(i);
Result[i]:=w;
until w=#0;
SetLength(Result,i);
end;
■ このスレッドは過去ログ倉庫に格納されています