找回密码
 立即注册
查看: 1757|回复: 0

关于Delphi memo存放数据到数据库然后导出的问题

[复制链接]

6802

主题

10

回帖

2万

积分

管理员

积分
21861
发表于 2019-5-20 21:45:49 | 显示全部楼层 |阅读模式
问题描述:

现在有数个memo,为了我描述的方便,拿2个来举例,:)

这两个memo中的数据均有回车换行的操作。

数据库表中有2个项目 ,id 和content。

向数据库中添加数据的事件:content中的内容为:memo1.Lines.Text+'/'+memo2.Lines.Text
procedure TForm1.Button1Click(Sender: TObject);
var
var1:string;
begin
var1:=memo1.Lines.Text+'/'+memo2.Lines.Text;
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('insert into 测试 values('''+edit1.text+''','''+var1+''')');
adoquery1.ExecSQL;
showmessage('添加数据成功');
end;


然后从数据库中取得数据并且分别赋值
procedure TForm1.Button4Click(Sender: TObject);
var
temp:string;
tls1:TStringList;
v:integer;
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select * from 测试 where id='''+edit1.text+'''');
adoquery1.Open;
temp:=adoquery1.FieldValues['content'];
/////////////////////////////////////////////////////////////////////
   tls1:=TStringList.Create;
   try
    tls1.Text:=StringReplace(temp,'/',#13#10,[rfReplaceAll]);
    for v:=0 to 1 do
    begin
      b[v]:=tls1.Strings[v];       //b[v]为我定义的数组,用来存放数据。
    end;
   finally
    tls1.Free;

   end;
     showmessage(b[0]);
     showmessage(b[1]);

end;

可是,当我取出content的数据之后,b[0]中的数据并不是我想要的以前输入的memo1中的内容,b[1]的数据也不是我想要的以前输入的memo2中的内容。我看了看,原来由于我的memo1中的内容有回车换行操作,使得b[0]中的数据是memo1中的第一行,b[1]中的数据是memo1中的第二行。

可我不想实现这样的功能,我想让b[0]中存放的是我以前输入的memo1中的内容,让b[1]中存放的是我以前输入的memo2中的内容。

这样的功能该如何实现哪?

、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、


解决:

是你想错了,你希望/转换后的#13#10有效,前面的#13#10无效,这样肯定不行了
换一种思路吧,给你举个例子:

procedure TForm1.Button1Click(Sender: TObject);
var
sl: TStringList;
s: string;
function Split(p: Char; s: string): TStringList;
begin
Result := TStringList.Create;
while Pos(p, s)>0 do
begin
    Result.Add(Copy(s, 1, Pos(p, s)-1));
    Delete(s, 1, Pos(p, s));
end;
if Length(s)>0 then Result.Add(s);
end;
begin
s := '123456'+#13#10+'123/5678';
sl := TStringList.Create;
sl := Split('/', s);
sl.Free;
ShowMessage(sl[0]);
end;
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表