delphi memo问题

代码如下procedureTForm1.Button1Click(Sender:TObject);varSearchText:string;k,l:integer;beg... 代码如下
procedure TForm1.Button1Click(Sender: TObject);
var
SearchText:string;
k,l:integer;
begin
edit1.Text:=UpperCase(edit1.text);
memo1.Clear;
SearchText:=edit1.Text; //查找edit1中输入的文本
k:=pos(SearchText,memo2.Text) ; //求出首次出现SearchText的位置
l:=pos(';',memo2.Text);// 找;
if k=0 then
showmessage('指令未找到')
else
begin
memo1.SelStart:=k;
memo1.SelLength:=length(SearchText);
// memo1.SetFocus;//这一句很重要,否则就会看不到文字被选中
memo1.Text:='说明:'+copy(memo2.Text,l +1,length(memo2.Text)-l) ; //这里出问题了
end;
end;
end.

我在memo2里存放了一些字符,想要实现当点击查找后依照edit里输入的在memo2里查找,如果找到一样的,就将';'后面到本行末的内容复制到memo1里并显示。
现在运行程序后没有查找我在edit里输入的内容,且它将memo2所有的内容全部复制到memo1里去了
请帮我看看是哪里出错了
不好意思,是我表达的不够清楚,我把目的继续说下:
因为memo2里的字母都是大写的,所以第 一段的edit1.Text:=UpperCase(edit1.text)是用来把字母转成大写的以便做查找。
我想做的是,在memo2里查找与edit的内容,然后把后面的内容到全行复制到memo1里显示。
比如memo2里有aaabcdeadfda,(下一行还有很多内容)我在edit里输入aaa以后,能够把aaa后的(bcdeadfda)复制到memo1里显示。
谢谢两位大鸟,我虽然接触delphi约有两个,但全都是自学的,工作和这个没有一点联系完全是个人爱好。
请求帮助,谢谢!
展开
 我来答
mit1208
2011-03-07 · TA获得超过2347个赞
知道大有可为答主
回答量:2743
采纳率:0%
帮助的人:1861万
展开全部
var
StartPos,EndPos:Integer;
begin
Memo1.Clear; //清空Memo1文本
StartPos :=Pos(';',Memo2.Text); //获取;字符在Memo2的位置
EndPos :=Length(Memo2.Text) - StartPos; //得到复制字符串的长度
Memo1.Text :=Trim(Copy(Memo2.Text,StartPos + 1,EndPos));
end;

这样就可以实现将;字符后的文本复制到Memo1中.
感觉你上边的代码好多都用不到...不知道你到底想干什么!
比如这三行代码:
edit1.Text:=UpperCase(edit1.text);
memo1.Clear;
SearchText:=edit1.Text; //查找edit1中输入的文本
你可以写成:
Memo1.Clear;
SearchText:=UpperCase(Edit1.Text);
这样就可以的呀!
你只想得到;字符后的文本,为何还要弄个SearchText变量来获得Edit里的文本呢?不理解.
下边的复制什么的代码,根本用不到呀!增加代码量,没一点实用价值的!
huangfu0705
2011-03-08
知道答主
回答量:7
采纳率:0%
帮助的人:0
展开全部
var
StartPos,EndPos:Integer;
begin
Memo1.Clear; //清空Memo1文本
StartPos :=Pos(';',Memo2.Text); //获取;字符在Memo2的位置
EndPos :=Length(Memo2.Text) - StartPos; //得到复制字符串的长度
Memo1.Text :=Trim(Copy(Memo2.Text,StartPos + 1,EndPos));
end;
这样就可以了。写的挺好的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ysjqrmpv
2011-03-08 · TA获得超过116个赞
知道小有建树答主
回答量:202
采纳率:0%
帮助的人:205万
展开全部
memo1.Text:='说明:'+copy(memo2.Text,l +LENGTH(edit1.Text)+2,length(memo2.Text)-l) ; //改为这样
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ihappyes
2011-03-07 · 超过16用户采纳过TA的回答
知道答主
回答量:34
采纳率:0%
帮助的人:40万
展开全部
我没有看到Memo2里的内容是什么,也不知道你要查找的内容是什么,最终的目的是要完成什么功能。我只能说,下列语句:
l:=pos(';',memo2.Text);
其中l的值,是memo2.Text中第一个分号的位置,而与K的值没有任何关系。不知道是不是这个影响了程序运行的结果。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式