delphi 判断字符串里的char是单字节还是双字节的前一位或后一位。

function   ByteType(const   S:   string;   Index:   Integer):   TMbcsByteType; 
  //  判断一个字符串中,某个  Char  是单个字母,还是双字节的前一位或后一位。 
  //  mbSingleByte 单字母 
  //  mbLeadByte   双字节第一位 
  //  mbTrailByte  双字节第二位

 

const
InvalidChars : set of char = ['\', '/', ':', '*', '?', '"', '<', '>', '|'];

function IsValidFilename(const fname: String): Boolean;
var
I: Integer;
begin
Result := fname <> '';

if Result then
begin
for I := 1 to Length(fname) do
begin
if ByteType(fname,i) <> mbSingleByte then
Continue;

Result := NOT (fname[I] in InvalidChars);
if NOT Result then Break;
end;
end;
end;

posted @ 2023-10-18 14:46  Tag  阅读(66)  评论(0编辑  收藏  举报