WideCharToMultByte APIとMultiByteToWideChar APIはその第一引数のコードページを変えることで様々な文字コードとWideStringとの相互変換ができます。
ということでEUCを読み込むにはTStringListのLoadFromFileでEUCのテキストファイルを読み込んでMultiByteToWideChar APIの第一引数にEUCのコードページを指定してWideStringに変換すればOKです。
function gfnsEucToWide(sSrc : AnsiString) :
WideString;
var
li_Len : Integer;
lp_Buff : PWideChar;
begin
li_Len := MultiByteToWideChar(CP_EUC, 0, PAnsiChar(sSrc),
-1,
nil, 0);
lp_Buff := AllocMem((li_Len + 1) * 2);
try
MultiByteToWideChar(CP_EUC, 0, PAnsiChar(sSrc), -1, lp_Buff,
li_Len);
Result :=
WideString(lp_Buff);
finally
FreeMem(lp_Buff);
end;
end;
function gfnsWideToEuc(sSrc :
WideString): AnsiString;
var
li_Len : Integer;
lp_Buff : PAnsiChar;
begin
li_Len := WideCharToMultiByte(CP_EUC, WC_COMPOSITECHECK, PWideChar(sSrc),
-1, nil, 0, nil, nil);
lp_Buff := AllocMem(li_Len + 1);
try
WideCharToMultiByte(CP_EUC, WC_COMPOSITECHECK, PWideChar(sSrc),
-1, lp_Buff, li_Len +1, nil, nil);
Result := AnsiString(lp_Buff);
finally
FreeMem(lp_Buff);
end;
end;