delphi中POS函数返回的是一个什么值?我ShowMessage(Pos('\',sFullpath));出错说不兼容的STRING AND INT
答案:2 悬赏:10 手机版
解决时间 2021-03-10 11:31
- 提问者网友:皆是孤独
- 2021-03-09 11:58
delphi中POS函数返回的是一个什么值?我ShowMessage(Pos('\',sFullpath));出错说不兼容的STRING AND INT
最佳答案
- 五星知识达人网友:动情书生
- 2021-03-09 12:50
Pos返回的是当前子串所出现的位置,所以是整数类型来的。
可以这样用:
ShowMessage(IntToStr(Pos('\',sFullpath)));
可以这样用:
ShowMessage(IntToStr(Pos('\',sFullpath)));
全部回答
- 1楼网友:一叶十三刺
- 2021-03-09 13:48
unit unit1;
interface
uses
windows, messages, sysutils, variants, classes, graphics, controls, forms,
dialogs, stdctrls;
type
tform1 = class(tform)
memo1: tmemo;
edit1: tedit;
button1: tbutton;
procedure formcreate(sender: tobject);
procedure formclose(sender: tobject; var action: tcloseaction);
procedure button1click(sender: tobject);
private
{ private declarations }
public
{ public declarations }
end;
var
form1: tform1;
mylist:tstringlist;//定义一个tstringlist类型,用来读取memo1的内容。
m:integer;//全局变量,用来测定读取到了mylist的第几行。
implementation
{$r *.dfm}
procedure tform1.formcreate(sender: tobject);
var
i:integer;
begin
mylist:=tstringlist.create;//逐行读取memo1的内容
for i:=0 to memo1.lines.count-1 do
mylist.add(memo1.lines.strings[i]);
m:=0;//初始化全局变量m。
end;
procedure tform1.button1click(sender: tobject);
var
n:integer;
s:string;
begin
edit1.clear;
if m < mylist.count then//如果未到mylist未尾进行以下步骤。
begin
s:=mylist.strings[m];//读取一行
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:='第'+inttostr(m+1)+'行没有qq';
m:=m+1;//m增加1,下次读mylist的下一行
end
else//如果读到了mylist未尾,则进行下面步骤。
begin
m:=0;//将m恢复为0,下次点击button1时,从mylist的第一行开始。
edit1.text:='搜索完毕,点击重新开始!';
edit1.setfocus;
end;
end;
procedure tform1.formclose(sender: tobject; var action: tcloseaction);
begin
mylist.free;//释放mylist。
end;
end.
这个函数是我自己写的花了5分钟,在delhpi7下调试通过!
今晚没时间写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;
end;//while
if j > length(u) then
result := i
else result := 0;
end; //if
end; //for
end;
这个函数是我自己写的花了5分钟,在delhpi7下调试通过!
今晚没时间写copy了,如果你真的需要就给我发消息吧。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯