提取txt中的数据,并且截取一段一段字符串,然后把他们存入到sql中。
txt中数据如下:
2.00000000000000E+0002 4.07915590655671E+0004 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000
2.37000000000000E+0002 2.50000000000000E-0004 0.00000000000000E+0000 6.71000000000000E-0003 -4.00000000000000E+0000 4.70000000000000E+0001
2.42000000000000E+0002 1.25000000000000E-0004 0.00000000000000E+0000 6.71000000000000E-0003 -4.00000000000000E+0000 9.40000000000000E+0001
2.44500000000000E+0002 1.25000000000000E-0004 0.00000000000000E+0000 1.06750000000000E-0002 -4.00000000000000E+0000 1.56000000000000E+0002
2.51500000000000E+0002 1.25000000000000E-0004 0.00000000000000E+0000 1.46400000000000E-0002 -3.00000000000000E+0001 2.19000000000000E+0002就是每行6个数据,我在sql中创建一个数据表,设置7个字段,第一个字段是id,其他6个跟这6个数据对应。
我想最后变成如下数据存入到sql中:
237 0.00025 0 0.00671 -4 47
242 0.000125 0 0.00671 -4 94
244.5 0.000125 0 0.010675 -4 156
251.5 0.000125 0 0.01464 -30 219
第一条记录不用存。我一点都不会啊,现在能弄的把txt数据显示到dbgrid里,但是还只显示最左边的那些除了0的数据。好奇怪啊,实在弄不明白了。
txt中数据如下:
2.00000000000000E+0002 4.07915590655671E+0004 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000
2.37000000000000E+0002 2.50000000000000E-0004 0.00000000000000E+0000 6.71000000000000E-0003 -4.00000000000000E+0000 4.70000000000000E+0001
2.42000000000000E+0002 1.25000000000000E-0004 0.00000000000000E+0000 6.71000000000000E-0003 -4.00000000000000E+0000 9.40000000000000E+0001
2.44500000000000E+0002 1.25000000000000E-0004 0.00000000000000E+0000 1.06750000000000E-0002 -4.00000000000000E+0000 1.56000000000000E+0002
2.51500000000000E+0002 1.25000000000000E-0004 0.00000000000000E+0000 1.46400000000000E-0002 -3.00000000000000E+0001 2.19000000000000E+0002就是每行6个数据,我在sql中创建一个数据表,设置7个字段,第一个字段是id,其他6个跟这6个数据对应。
我想最后变成如下数据存入到sql中:
237 0.00025 0 0.00671 -4 47
242 0.000125 0 0.00671 -4 94
244.5 0.000125 0 0.010675 -4 156
251.5 0.000125 0 0.01464 -30 219
第一条记录不用存。我一点都不会啊,现在能弄的把txt数据显示到dbgrid里,但是还只显示最左边的那些除了0的数据。好奇怪啊,实在弄不明白了。
继续顶一下
顶顶帖子高手们
也请多多赐教
http://topic.csdn.net/u/20110709/12/3ec63017-cef8-41e0-a524-c9b9dfe56d5c.html
http://topic.csdn.net/u/20110611/12/3258c959-4f28-46b7-b5d6-46135d73036b.html
http://topic.csdn.net/u/20110722/14/89f7440b-c4d7-4c9a-a4bb-a503f5135db2.html
http://topic.csdn.net/u/20110729/10/a7bfaf06-0cf9-4580-8e91-d4e0b92066c6.htmlhttp://topic.csdn.net/u/20110811/16/e56e7cc1-d8c9-40af-92e3-c24ca103d17d.html
http://topic.csdn.net/u/20110830/13/dfae4ca5-d2b9-4889-8a3c-6f7fb61936c9.html
http://topic.csdn.net/u/20110831/17/427b6ab0-66c6-4f33-af26-ebd27b0dc541.html
http://topic.csdn.net/u/20110901/09/83c2c668-cbe6-4db9-966d-bf2f47456811.html
http://topic.csdn.net/u/20110905/12/a1161adb-8e5d-491a-b302-c9722edf2dab.html
http://topic.csdn.net/u/20110906/10/86d49517-b7a6-4fae-982b-478d2d6e2a23.html
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
OpenDialog1: TOpenDialog;
procedure TransformStr(Str: String);
procedure ReadText();
procedure InsertIntoDB(DoubleArr: Array of Double);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}{ ***** 将读取的行存入Double类型的数组中 ***** }
procedure TForm1.TransformStr(Str: String);
var
I: Integer;
Index: Integer;
Arr: Array[1..6] of String;
DoubleArr: Array[1..6] of Double;
begin
Str := Trim(Str) + ' ';
for I := 1 to 6 do
begin
Arr[I] := '';
DoubleArr[I] := 0;
// 定位空格
Index := Pos(' ', Str);
// 获得一行的第I个数
Arr[I] := Copy(Str, 1, Index - 1);
DoubleArr[I] := StrToFloat(Arr[I]);
// 删除已经存入数组中的字符串中的部分
Delete(Str, 1, Index);
end;
// 将数据插入数据库
InsertIntoDB(DoubleArr);
end;{ ***** 读取Text文档中的行 ***** }
procedure TForm1.ReadText();
var
MyText: TextFile;
S: String;
IsFirst: Boolean;
begin
// IsFirst判断读取的是否是文档的第一行
IsFirst := False;
try
if OpenDialog1.Execute then
begin
AssignFile(MyText, OpenDialog1.FileName);
Reset(MyText);
// Text文本中有行
while not Eof(MyText) do
begin
Readln(MyText, S);
// 第一次读取Text文档时,将IsFirst设置为True,此行不操作。
if not IsFirst then
begin
IsFirst := True;
Continue;
end;
// 如果读取的不是第一行,将此行转化后存入数据库。
if IsFirst then
begin
// 转化
TransformStr(S);
end;
end;
end;
except;
ShowMessage('读取文件失败。');
end;
end;{ ***** 将一行数据存入数据库 ***** }
procedure TForm1.InsertIntoDB(DoubleArr: Array of Double);
var
I: Integer;
SQLStr: String;
begin
SQLStr := '';
SQLStr := 'insert into num(n1,n2,n3,n4,n5,n6) values(';
SQLStr := SQLStr + QuotedStr(FloatToStr(DoubleArr[0])) + ',';
SQLStr := SQLStr + QuotedStr(FloatToStr(DoubleArr[1])) + ',';
SQLStr := SQLStr + QuotedStr(FloatToStr(DoubleArr[2])) + ',';
SQLStr := SQLStr + QuotedStr(FloatToStr(DoubleArr[3])) + ',';
SQLStr := SQLStr + QuotedStr(FloatToStr(DoubleArr[4])) + ',';
SQLStr := SQLStr + QuotedStr(FloatToStr(DoubleArr[5])) + ')';
ShowMessage(SQLStr); // 验证SQLStr正确
{ …… // 存入DB }
end;procedure TForm1.Button1Click(Sender: TObject);
begin
// 读取Text文档
ReadText;
end;end.