2007-3-12 08:46
skyjacker
MicroTip#2:将中或英字符串转换为 Delphi 的 Dfm 格式
// MicroTip#2:将中或英字符串转换为 Delphi 的 Dfm 格式
// Test in Delphi6's Dfm
// Wrtten by SkyJacker 2007.03.05
// QQ Discuss Group: 130970
// 将中或英字符串转换为 Delphi 的 Dfm 格式
// Ex: 'CnPack Delphi '#20195#30721#24341#25806' V1.0' . Maybe you can reverse it!
function StrToDfmFmt(const AStr: string): string;
const
QM = '''';
var
W: WideString;
I: Integer;
bEn: Boolean;
Len: Integer;
begin
bEn := False;
W := AStr;
Len := Length(W);
for I:=1 to Len do
begin
if Ord(W[i])>127 then // 如果为非普通 ascii,就认为是宽字符
begin
if bEn then
Result := Result + QM;
Result := Result + '#' + IntToStr(Ord(W[I]));
bEn := false;
end
else
begin
if not bEn then
Result := Result + QM + W[i]
else
Result := Result + W[i];
if I = Len then
Result := Result + QM;
bEn := true;
end;
end;
end;
2007-3-12 09:25
Passion
if Ord(W)>127
这个用法还真新鲜。
2007-3-12 09:42
skyjacker
阿.
我的原文是:
if Ord(W[i])>127 then // 如果为非普通 ascii,就认为是宽字符
我是先放在 UE 中再Copy的.
难道弄丢了.
上面的Ord(W)就不改了,当作一个小后门吧。:lol:
2007-3-12 09:43
skyjacker
:L Discuz 过滤了.
阿.
我的原文是:
if Ord(W { i })>127 then // 如果为非普通 ascii,就认为是宽字符
2007-3-12 09:44
skyjacker
W[I]
2007-3-12 09:44
skyjacker
(W[I])
2007-3-12 09:44
skyjacker
Ord(W[I])
2007-3-12 09:45
skyjacker
Ord(W[I]) >
2007-3-12 09:45
skyjacker
if Ord(W[i])>127
2007-3-12 09:46
skyjacker
Ord(W[i])>127
2007-3-12 09:46
skyjacker
(W[i])>127
2007-3-12 09:49
skyjacker
总结:
Discuz! 5.0.0 会过滤类似于以下字符串:
(W{I})>127
"{}" 实际为 "[]"
Thx Passion!
2007-3-12 10:04
skyjacker
让此帖作为我的灌水测试帖吧
小于
(W[I]) < 127
2007-3-12 10:05
skyjacker
(W[I]) and (W[I]) > 127
2007-3-12 10:05
skyjacker
((W[I]) and (W[I])) > 127
2007-3-12 10:06
skyjacker
((W[I]) && (W[I])) > 127
2007-3-12 10:06
skyjacker
W[ I ] > 127
2007-3-12 10:07
skyjacker
(W[ I ])>127
2007-3-12 11:57
Passion
明白了, 得禁用DISCUZ! 代码,否则那个方括号I就被当成斜体了。
2007-3-14 10:00
kendling
怪不得看起来怪怪的。
页:
[1]
Powered by Discuz! Archiver 5.0.0
© 2001-2006 Comsenz Inc.