Очевидно, что было бы лучше с Delphi 2010, так как VCL в Delphi 7 не знает о строках Unicode.Вы можете использовать типы WideString и WideChar в Delphi 7 и установить набор компонентов, например, компоненты TNT Unicode, чтобы помочь вам создать пользовательский интерфейс, который может отображать ваши результаты.
Для типа с очень большим набором рассмотрите возможность использования битового массива, такого как TBits.Битовый массив длиной 65536 будет вмещать достаточно, чтобы содержать каждую кодовую точку UTF-16.Проверка, если Char X находится в наборе Y, будет в основном:
function WideCharsInSet( wcstr:WideString; wcset:TBits):Boolean;
var
n:Integer;
wc:WideChar;
begin
result := false;
for n := 1 to Length(wcstr) do begin
wc := wcstr[n];
if wcset[Ord(wc)] then
result := true;
end;
end;
procedure Demo;
var
wcset1:TBits;
s:WideString;
begin
wcset1 := TBits.Create;
try
// 1157 - Hangul Korean codepoint I found with Char Map
wcset1[1157] := true;
// go get a string value s:
s := WideChar(1157);
// return true if at least one element in set wcset is found in string s:
if WideCharsInSet(s,wcset1) then begin
Application.MessageBox('Found it','found it',MB_OK);
end;
finally
wcset1.Free;
end;
end;