Delphi 从字符串中提取单词、从字符串中提取汉字的函数


本文整理自网络,侵删。

 
{从字符串中提取单词的函数}
procedure StrToWordList(str: string; var List: TStringList);
var
p: PChar;
i: Integer;
begin
if List = nil then List := TStringList.Create;
List.Clear;
{去除重复}
List.Sorted := True;
List.Duplicates := dupIgnore;
p := PChar(str);
{把单词以外的字符转为空格, 并把大写字母转小写}
while p^ <> #0 do
begin
case p^ of
'A'..'Z': p^ := Chr(Ord(p^) + 32);
'a'..'z', '0'..'9', '''', '-': ;
else p^ := #32;
end;
Inc(p);
end;
{用空格分离单词到列表}
List.Delimiter := #32;
List.DelimitedText := str;
{单词的开头应该是字母, 去除其他}
for i := List.Count - 1 downto 0 do
begin
if CharInSet(List<i>[1], ['0'..'9', '-', '''']) then
List.Delete(i);
end;
end;
{从字符串中提取汉字的函数}
procedure StrToHanZiList(str: string; var List: TStringList);
var
p: PWideChar;
begin
if List = nil then List := TStringList.Create;
List.Clear;
{去除重复}
List.Sorted := True;
List.Duplicates := dupIgnore;
p := PWideChar(str);
while p^ <> #0 do
begin
case p^ of
#$4E00..#$9FA5: List.Add(p^);
end;
Inc(p);
end;
end;

相关阅读 >>

Delphi 使用windows api(wincrypt)计算文件md5哈希,支持大文件

Delphi 调用viewer-windows10 图像浏览器

Delphi显示gif动画简单方法

Delphi 通过系统api函数实现精确记时

Delphi 实现简易语音发音(基于tts方式)

Delphi固定窗口大小

winapi 字符及字符串函数(11): lstrcpyn - 复制字符串, 同时指定要复制的长度

Delphi inputbox 用法

Delphi 如何在数据表中存取图片

Delphi tdirectory

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...