delphi pos方法的问题 为什么没有返回值

时间:2022-03-05 00:30:15
   tempd:=pos('类型',t);
              tempj:=pos('型号',t);
              if (pos('类型',t)=1) or (pos('型号',t)=1 ) then
我这样写为什么运行时tempd和tempj中没有数据啊

8 个解决方案

#1


function Pos(Substr: string; S: string): Integer;

在S中从第1位开始找Substr,找不到返回0;自己对比一下有还是没有?

#2


有啊 我的t='水泥类型'

#3


为什么tempd和tempj中还是没有值呢?

#4


用ansipos试下

#5


var
 t:string;
 tempd:integer;
begin
  t:='水泥类型';
  tempd:=pos('类型',t);
  showmessage(inttostr(tempd));
end;

瞧瞧有还是没有?
把你之前的代碼放出來看看...

#6


如果你的t='水泥类型'
那这句if (pos('类型',t)=1) or (pos('型号',t)=1 ) then
显然就错了,pos的结果怎么都部可能是1, 用是否大于0判断吧

#7


刚才没仔细看,确实LZ没仔细看pos的函数说明吧

#8


function Pos ( const Needle, HayStack : string ) : Integer;

The Pos function finds the position of one string Needle within another HayStack. 
If the string is not found, 0 is returned. 
The search is case sensitive. 

由于DELPHI版本差异:Pos('类型','水泥类型')在Delphi2007中返回值为5,XE中为3。

#1


function Pos(Substr: string; S: string): Integer;

在S中从第1位开始找Substr,找不到返回0;自己对比一下有还是没有?

#2


有啊 我的t='水泥类型'

#3


为什么tempd和tempj中还是没有值呢?

#4


用ansipos试下

#5


var
 t:string;
 tempd:integer;
begin
  t:='水泥类型';
  tempd:=pos('类型',t);
  showmessage(inttostr(tempd));
end;

瞧瞧有还是没有?
把你之前的代碼放出來看看...

#6


如果你的t='水泥类型'
那这句if (pos('类型',t)=1) or (pos('型号',t)=1 ) then
显然就错了,pos的结果怎么都部可能是1, 用是否大于0判断吧

#7


刚才没仔细看,确实LZ没仔细看pos的函数说明吧

#8


function Pos ( const Needle, HayStack : string ) : Integer;

The Pos function finds the position of one string Needle within another HayStack. 
If the string is not found, 0 is returned. 
The search is case sensitive. 

由于DELPHI版本差异:Pos('类型','水泥类型')在Delphi2007中返回值为5,XE中为3。