モナーの *やさしい* Delphi質問スレ Ver.7
■ このスレッドは過去ログ倉庫に格納されています
0638無責任だが
NGNG(なお WideStringはAnsiStringに代入すれば自動的にUnicode->ShiftJisされます)
function WEcvt(const s:String): WideString;
var Sz, n,m: integer;
var Endian:boolean;
var p:pChar;
function getb:Char;
var w:string;
begin
Result:=p^;
if Result=#0 then exit;
inc(p);
if Result='\' then begin
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);
end;
end;
function getw:WideChar;
var c1,c2:Char;
begin
Result:=#0;
c1:=getb;if c1=#0 then exit;
c2:=getb;if c2=#0 then exit;
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
i:=0;
Endian:=false;
p:=PChar(s);
Setlength(Result,Length(s));
repeat
w:=getw;
if w=#$FEFF then continue;
inc(i);
Result[i]:=w;
until w=#0;
SetLength(Result,i);
end;
■ このスレッドは過去ログ倉庫に格納されています