如何读取memo里面的一行数据
memo1的一行数据格式是
位置,30,40,55,25
位置,35,46,50,25
如何把这一五个数值,分别付给label1.caprion
label2.caprion
label3.caprion
label4.caprion
label5.caprion
[解决办法]
自定义函数如下:
function GetDefaultString(Bankinformation:String;bsfdh:Char;nPos:integer):string;
var
sListinfo:TStringList;
begin
Result:='';
sListinfo:=TStringList.Create;
sListinfo.Text:=StringReplace(Bankinformation,bsfdh,#13#10,[rfReplaceAll]);
if (nPos>0) and (sListinfo.Count>=nPos) then Result:=sListinfo[nPos-1];
end;
引用方式如下:
procedure TForm1.Button3Click(Sender: TObject);
var
a:integer;
begin
a:=SendMessage(Memo1.Handle,EM_LineFromChar,Memo1.SelStart,0); //获取当前行号
label1.Caption:=(GetDefaultString(memo1.Lines.Strings[a],',',1));//第3个*后的字符.
label2.Caption:=(GetDefaultString(memo1.Lines.Strings[a],',',2));//第3个*后的字符.
label3.Caption:=(GetDefaultString(memo1.Lines.Strings[a],',',3));//第3个*后的字符.
label4.Caption:=(GetDefaultString(memo1.Lines.Strings[a],',',4));//第3个*后的字符.
label5.Caption:=(GetDefaultString(memo1.Lines.Strings[a],',',5));//第3个*后的字符.
end;
//重点声明一下:
必须用“鼠标”选中MEMO1中的某一行后,再点击“按扭”获取信息的
测试OK,继续“潜水”.............
等待下一次涨海水.................
[解决办法]
with TStringList.Create do try CommaText := '位置,30,40,55,25'; Label1.Caption := Strings[0]; Label2.Caption := Strings[1]; Label3.Caption := Strings[2]; Label4.Caption := Strings[3]; Label5.Caption := Strings[4]; finally Free end;