Delphi 生成随机汉字函数GenerateChineseWords

根据c#改编而来,很多年了。

function GenerateChineseWords(count: integer): string;
var
  i: integer;
  regionCode, positionCode: integer;
  regionCode_Machine, positionCode_Machine: integer;
  chineseWords: string;
begin
  Randomize;
  for i := 0 to count - 1 do
  begin
    // 获取区码(常用汉字的区码范围为16-55)
    regionCode := 16 + Random(40);
    // 获取位码(位码范围为1-94 由于55区的90,91,92,93,94为空,故将其排除)
    if (regionCode = 55) then
    begin
      // 55区排除90,91,92,93,94
      positionCode := Random(89) + 1;
    end
    else
    begin
      positionCode := Random(94) + 1;
    end;
    // 转换区位码为机内码
    regionCode_Machine := regionCode + 160; // 160即为十六进制的20H+80H=A0H
    positionCode_Machine := positionCode + 160; // 160即为十六进制的20H+80H=A0H
    // 转换为汉字
    chineseWords := chineseWords + char(regionCode_Machine) + char(positionCode_Machine);
  end;
  Result := chineseWords;
end;

posted on 2022-08-11 17:23  YXGust  阅读(181)  评论(0编辑  收藏  举报

导航