熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Delphi編程 >> 正文

從字符串中提取單詞、從字符串中提取漢字的函數

2022-06-13   來源: Delphi編程 

  {從字符串中提取單詞的函數}
procedure StrToWordList(str: string; var List: TStringList); var
  p: PChar;
  i: Integer;
begin
  if List = nil then List := TStringListCreate;
  ListClear;
  {去除重復}
  ListSorted := True;
  ListDuplicates := dupIgnore;
 
  p := PChar(str);

  {把單詞以外的字符轉為空格 並把大寫字母轉小寫}
  while p^ <> # do
  begin
    case p^ of
      AZ: p^ := Chr(Ord(p^) + );
      az : ;
      else p^ := #;
    end;
    Inc(p);
  end;

  {用空格分離單詞到列表}
  ListDelimiter := #;
  ListDelimitedText := str;

  {單詞的開頭應該是字母 去除其他}
  for i := ListCount downto do
  begin
    if CharInSet(List[i][] [ ]) then
    ListDelete(i);
  end;
end;

  {從字符串中提取漢字的函數}
procedure StrToHanZiList(str: string; var List: TStringList);
var
  p: PWideChar;
begin
  if List = nil then List := TStringListCreate;
  ListClear;
  {去除重復}
  ListSorted := True;
  ListDuplicates := dupIgnore;
 
  p := PWideChar(str);
  while p^ <> # do
  begin
    case p^ of
      #$E#$FA: ListAdd(p^);
    end;
    Inc(p);
  end;
end;


From:http://tw.wingwit.com/Article/program/Delphi/201311/8389.html
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.