delphi中pos函数怎么用?

.

pos(a,b)函数用法如下:取出子串a,在父串b中第一次出现的位置。

例如:

pos(‘b’,‘abcd’);

返回结果是2;                    

在delphi中使用汇编异常的简单,只用使用关键字asm ....end来引导就行了。 得到一个字符在字符串中的位置有很多方法,最简单的就是使用delphi自己的Pos函数 。

另外一个方法就是使用 循环查找字符串数组的方法,二分法等,这几种是比较常规的方法,其中建议最好不使用Pos函数。 因为,虽然使用该函数写的代码是很简单,只用一句话:
CharIndex := Pos(MyChar,str) 

就能够完成,但是其实他的效率是最低的,因为delphi在使用它之前,先要开辟一个数组空间。

扩展资料

delphi中pos和Ansipos函数的区别:

POS和ANSIPOS的主要区别在于,POS参数多用于是一个字符,而ANSIPOS多用于是多个字符:

例如:i:=pos('a','sssssas');

i:=ansipos('abc','sdabcss');

AnsiPos是以Ansi字符做为Pos单位,例如AnsiPos('|','王韡|')得到的值是5。Pos是以字节作为Pos单位,例如Pos('|','王韡|')得到的值是4,因“‘韡”是由两个字节组成,而其低位为“|”所以Pos后的结果为4。

另外AnsiPos和Pos都可以Pos多字符目标,例如:

AnsiPos('Abs','123Abs78') = 4

AnsiPos('Abs','123A5678') = 0

Pos('Abs','123Abs78') = 4

Pos('Abs','123A5678') = 0















温馨提示:内容为网友见解,仅供参考
第1个回答  2006-10-10
取出子串在父串中第一次出现的位置
例如
pos('b','abcd');
返回结果是2本回答被提问者采纳
第2个回答  推荐于2017-09-14
delphi中pos函数解法思路如下:
取出子串在父串中第一次出现的位置
例如
pos('b','abcd');
返回结果是2

delphi中pos函数怎么用?
在delphi中使用汇编异常的简单,只用使用关键字asm ...end来引导就行了。 得到一个字符在字符串中的位置有很多方法,最简单的就是使用delphi自己的Pos函数 。另外一个方法就是使用 循环查找字符串数组的方法,二分法等,这几种是比较常规的方法,其中建议最好不使用Pos函数。 因为,虽然使用该函数写的...

delphi中POS函数返回的是一个什么值?我ShowMessage(Pos(,sF
一、delphi中POS函数返回的是一个什么值?我ShowMessage(Pos(,sFullpath));出错说不兼容的STRING AND INT  Pos的位置,所以是整数类型来的。可以这样用:ShowMessStr(Pos('\\',sFullpath)));二、delphi中POS函数返回的是一个什么值?我ShowMessage(Pos('\\',sFull...Pos返回的是当前子串所出...

在Delphi中,怎么查找字符串?
Delphi提供的字符串函数里有一个Pos函数,它的定义是: function Pos(Substr: string; S: string): Integer; 它的作用是在字符串S中查找字符串Substr,返回值是Substr在S中第一次出现的位置,如果没有找到,返回值为0。 使用pos函数来查找字符第一次出现的位置 1 2 3 4 5 6 7 8 9 var str1:string; i,j...

delphi 中的move()和pos()函数究竟是怎样用的?
function Pos(Substr: string; S: string): Integer;在S中查找Substr第一次出现的位置。返回0表示在S中没有找到Substr。var S: string;begin S := ' 123.5';while Pos(' ', S) > 0 do \/\/将S中的空格替换成'0’S[Pos(' ', S)] := '0';end;...

delphi 如何把一串字符串的某个值的前几个字符保留下来
可通过函数POS及COPY配合使用实现该功能。一、函数说明:POS:获取特定字符所处字符串的位置,返回数据类型为整型。POS共有两个参数:POS(特定字符或字符串,源字符串)。COPY:字符串截取,返回数据类型为字符型。COPY共有三个参数:COPY(源字符串,起始截取位(整型,可为变量),截取位数(整型,可为...

Delphi中FindDialog的使用问题
1、思想:查找子串(Pos函数),如果找到就在剩下的子串(Copy函数)中继续查找,直到结束 i:=Memo1.SelStart+memo1.SelLength ; (记录选中子串结束的位置,如果未选中,i就是光标所在位置) str :=Copy(Memo1.Text,i+1,Length(Memo1.Text)); (取选中子串后面的部分作为新的字符串,用以查找) ...

delphi中posex怎么用?比如说我要取12-12345-6这个数中的- -之间的数...
varnPos1,nPos2:integer;sub:string;text:string;str:string;beginsub:='-';text:='12-12345-6';nPos1 :=PosEx(sub,text,1);nPos2:=PosEx(sub,text,nPos1 +Length (sub));\/\/showmessage(inttostr(npos1)+' '+inttostr(npos2));str := copy(text,npos1+Length (sub),nPos2-...

请教pos函数(delphi)
n:=pos('+',s);\/\/判断+号的位置 s:=copy(s,n+3,length(s)-(n+2));\/\/复制QQ后面的内容,位置为n+3,长度为length(s)-(n+2)if n <> 0 then\/\/如果n不为0,既有+号,则进行下面步骤。edit1.Text:=s else\/\/如果n为0,既没有+号,则edit1中注明没有。edit1.Text:='第'+...

Delphi汉字字符串中查找汉字第二次出现的位置
s1:=widestring('门诊医疗诊疗收费收据');然后再I:=pos('疗',s1);试一下?要找到第二个字符的位置,要麻烦一些.先用pos函数给第一个字符第一个字符的位置 然后用zf:=copy(s1,i+1,length(s1)-i);\/\/去掉了第一个要找字符及前面的字符 J:=pos('疗',zf);j:=i+j;此时J的值就是第二个...

delphi中如何编程实现pos,copy函数
function MyPos(u: string; s: string) : integer;var i,j: integer;begin Result := 0;for i := 1 to Length(s) do begin if s[i] = u[1] then begin j := 1;while j <= length(u) do begin if u[j] = s[i+j-1] then begin j := j + 1;continue;end else break...

相似回答