操作系统:匈牙利语 Windows (Windows 1250)
在 Delphi 6 Prof 下没有WideStringPos, WideStringCopy, WideStringReplace
...
但是在基于 XML 的项目中,我需要使用它们。
因为我试图编写“类似”这些函数。
但我不确定他们是否按照我的意愿工作......
因为 Delphi 将 Wide 转换为 Ansi 并在后台反转,所以我不能确定我的代码是否安全不受这些副作用的影响...... :-)
代码非常原始 - 我需要快速解决方案......
function WideStringCopy(WWhat : WideString; From, HowMany : integer) : WideString;
var
i : integer;
l : integer;
wc : WideChar;
begin
Result := '';
if WWhat = ''
then Exit;
if (HowMany <= 0)
then Exit;
if (From < 1)
then From := 1;
l := From + HowMany - 1;
if l > Length(WWhat)
then l := Length(WWhat);
for i := From to l do begin
wc := WWhat[i];
Result := Result + wc;
end;
end;
function WideStringPos(WWhere, WWhat : WideString) : integer;
var
wscomp : WideString;
i : integer;
begin
Result := 0;
for i := 1 to Length(WWhere) do begin
wscomp := WideStringCopy(WWhere, i, LengtH(WWhat));
if WideSameStr(wscomp, WWhat)
then begin
Result := i;
Exit;
end;
end;
end;
function WideStringReplace(WWhere, WFrom, WTo : WideString) : WideString;
var
actpos : integer;
wcomp : WideString;
wc : WideChar;
begin
Result := '';
actpos := 1;
while actpos <= Length(WWhere) do begin
wcomp := WideStringCopy(WWhere, actpos, Length(WFrom));
if WideSameStr(wcomp, WFrom) then begin
Result := Result + WTo;
inc(actpos, Length(WFrom));
end else begin
wc := WWhere[actpos];
Result := Result + wc;
inc(actpos);
end;
end;
end;
我有两个问题:
您是否看到任何肯定会产生不良结果的代码(默默地将 Wide 转换为 Ansi,并导致字符丢失)?
你知道我可以测试这段代码的一些角色吗?
例如, chr(XXX) 当我的转换器保持宽规则时剩余的内容,但如果我编写错误的代码就会丢失......
感谢您将写的每一个信息...