首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

关于数据保存的有关问题?

2012-02-22 
关于数据保存的问题???我用四个通道采集数据,在memo控件里显示,数据格式如下(每两个数据之间相隔两个空格,

关于数据保存的问题???
我用四个通道采集数据,在memo控件里显示,数据格式如下(每两个数据之间相隔两个空格,并且数据在memo中自动换行):
U1=0.0000278V U2=0.0000233V U3=0.0000108V U4=0.0000042V U1=0.0000247V U2=... U3=... U4=...如此循环下去
现在我想将memo中的数据分门别类的保存到.db数据库当中,以便以后调用。
保存的格式如下:
  U1 U2 U3 U4
  0.0000278V 0.0000233V 0.0000108V 0.0000042V  
  0.0000247V ... ... ...
  . . . .
  . . . .
  . . . .

   
请问,那位大神出出主意,怎么实现?

[解决办法]
2L的思路相当值得学习啊,我以前只会傻傻的处理字符串,不过这样操作有一个漏洞,虽然string可以不限长度,但是使用ado控件的话sql语句过长有时候是会出问题的


给LZ另外个思路,
要求严格控制字符串的格式就是u1,u2,u3,u4之间用空格区分,且字符串本身没有空格,这样你先把memo1中 "空格U1="替换成 "回车换行u1=",然后memo1可以直接保存成文本,之后可以使用access导入文本的方式,使用空格当区分符导入数据库,其实使用sql也可以把文本导入数据库,不过书写的格式我忘记了,和excel类似
另外也可以用本办法纯字符串处理,利用空格做区分符转成字符串列表 然后再使用sql语句一行行插入
[解决办法]
想用循环当然方法很多,再给你一种,自己根据情况去完善吧

Delphi(Pascal) code
procedure TForm1.Button1Click(Sender: TObject);var  i:integer;  s,s1,s2:string;begin  Query1.Close;  Query1.SQL.Text:='Select U1,U2,U3,U4 From t Where 1<>1';  Query1.Open;  Memo1.Text:=stringreplace(Memo1.Text,'  ',#13#10,[rfReplaceAll]);  for i:=0 to Memo1.Lines.Count -1 do  begin    if Trim(Memo1.Lines.Strings[i])='' then       continue;    s1:=Memo1.Lines.Names[i];    s2:=Memo1.Lines.ValueFromIndex[i];    with Query1 do    begin      if LowerCase(s1)='u1' then         append;      fieldbyname(s1).asstring:=s2;      if LowerCase(s1)='u4' then         post;    end;  end;end;
[解决办法]
在写入MEMO之前或同时处理数据,写入数据库,比写入MDEMO后再处理MEMO中的数据省事得多。而且不用考虑重复和更新的问题。

热点排行