delphi 查询某个字符在字符串出现的位置,支持查找次数


本文整理自网络,侵删。

 
function SearchString(const FindStr, SourceString: string; Num: Integer):
Integer;
var
FirstSym: PChar; //Ссылка на первый символ
function MyPos(const FindStr, SourceString: PChar; Num: Integer): PChar;
begin
   Result := AnsiStrPos(SourceString, FindStr);
     //Поиск вхождения подстроки в строку
   if (Result = nil) then
     Exit; //Подстрока не найдена
   Inc(Result); //Смещаем указатель на следующий символ
   if Num = 1 then
     Exit; //Если нужно первое вхождение - заканчиваем
   if num > 1 then
     Result := MyPos(FindStr, Result, num - 1);
   //Рекурсивный поиск следующего вхождения
end;
begin
FirstSym := PChar(SourceString);
//Присваиваем адрес первого символа исходной строки
Result := MyPos(PChar(FindStr), PChar(SourceString), Num) - FirstSym;
//Номер позиции в строке
if Result < 0 then
   Result := 0; //Возвращаем номер позиции
end;



procedure TForm1.Button1Click(Sender: TObject);
var
StrF, StrSrc: string;
n: Integer;
begin
StrF := '国';
StrSrc := '中国华人民共和国万岁';
n := SearchString(StrF, StrSrc,1);   //结果2
memo1.Lines.Add(inttostr(n));
end;


procedure TForm1.Button2Click(Sender: TObject);
var
StrF, StrSrc: string;
n: Integer;
begin
StrF := '国';
StrSrc := '中国华人民共和国万岁';
n := SearchString(StrF, StrSrc,2);   //结果8
memo1.Lines.Add(inttostr(n));
end;

相关阅读 >>

Delphi makeuniquefilename 创建文件名如果已经存在自动更改文件名

Delphi 用tidsmip和tidmessage发送邮件

Delphi使用project manager添加一个java库到你的应用程序

Delphi 10.3 控件遮挡 webbrowser

Delphi getprocesshandleasname 获取进程句柄

Delphi常用日期函数

Delphi windows 编程[9] - wm_close 消息

Delphi 关于 tregex.split()

Delphi 获取webbrowser中的图片

Delphi xe6 通过javascript api调用百度地图

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



打赏

取消

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

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

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

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

评论

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