本文整理自网络,侵删。
function SearchString(const FindStr, SourceString: string; Num: Integer):Integer;varFirstSym: 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;beginFirstSym := PChar(SourceString);//Присваиваем адрес первого символа исходной строкиResult := MyPos(PChar(FindStr), PChar(SourceString), Num) - FirstSym;//Номер позиции в строкеif Result < 0 then Result := 0; //Возвращаем номер позицииend;
procedure TForm1.Button1Click(Sender: TObject);varStrF, StrSrc: string;n: Integer;beginStrF := '国';StrSrc := '中国华人民共和国万岁';n := SearchString(StrF, StrSrc,1); //结果2memo1.Lines.Add(inttostr(n));end;
procedure TForm1.Button2Click(Sender: TObject);varStrF, StrSrc: string;n: Integer;beginStrF := '国';StrSrc := '中国华人民共和国万岁';n := SearchString(StrF, StrSrc,2); //结果8memo1.Lines.Add(inttostr(n));end;
相关阅读 >>
Delphi waitforsingleobject 响应窗体
Delphi winapi: writeprivateprofilestring、getprivateprofilestring - 简单读写 ini 文件
Delphi使用idtcpclient和idtcpserver相互发送数据
更多相关阅读请进入《Delphi》频道 >>