如何把文本文件里的所要取的数据取出来传到一个报表模板.(写好的)请大家给予帮助...谢谢(100)

  • 主题发起人 主题发起人 楚辞
  • 开始时间 开始时间

楚辞

Unregistered / Unconfirmed
GUEST, unregistred user!
报表模板是已经做好的.html文件.,如何把我所要数据提取出来?如果有相关的例子也行...文本文件内容:样品编号:TRQ-2008-10-016采样地点:柳屯配气站(大化 外销管线)采样时间:2008-10-20(09:00)采 样 人:某某某监 护 人:某某某样品状态描述:气态检测环境描述:22.0℃ 65.0% 100.20kPa检测设备: HP6890plus/us00032696RetTime Sig Type Area Amt/Area Norm Grp Name [min] % -------|--|------|----------|----------|----------|--|--------------- 1.486 2 BB S 3.76417e4 2.39344e-3 83.4061 C1 2.708 2 BB 866.13147 1.52264e-3 2.0308 CO2 4.036 1 BB X 164.57686 1.78458e-3 3.9449 C3H8 4.254 1 BB 34.53477 1.30420e-3 0.7569 iC4H10 4.434 1 BB 35.11552 1.31402e-3 1.427 nC4H10 5.062 1 BB 17.85480 1.02939e-3 0.4789 iC5H12 5.371 1 BB 9.07319 1.02866e-3 0.3893 nC5H12 6.612 2 BP 1340.55762 1.62436e-3 6.343 C2H6 6.650 1 - - 0.2686 C6 8.343 2 BB 361.30563 1.77467e-3 0.6686 N2 8.900 1 - - 0.2019 C7 11.556 1 VBA+ 99.02929 6.43168e-4 0.0686 C8 14.050 1 - - 0.0153 C9 16.550 1 - - - C10 所取数据如下:TRQ-2008-10-016柳屯配气站(大化 外销管线)2008-10-20(09:00)韩翠红 李月梅田文英气态22.0℃ 65.0% 100.20kPa HP6890plus/us00032696还有:83.4061 2.0308 3.9449 0.7569 1.427 0.4789 0.3893 6.343 0.2686 0.6686 0.2019 0.0686 0.0153
 
采 样 人:某某某监 护 人:某某某某某某,就是下面这些....韩翠红 李月梅田文英
 
现在想问的就是如何把这些所要的数据取出来....
 
把文本文件中的数据取出来,倒入到excel中也行.
 
如果有相似的例子,给个例子也行....
 
请FW们给予观注....
 
LZ,看过你不少贴子,都是基础的问题,感觉你好像没怎么接触过Delphi,可能连半路出家都算不上,因此建议你自己先学习一下再来提问,不要老是提些让人没有兴趣的基础(你的问题大多很简单,但要说清楚却要打N多字,典型的让人费力不讨好),大富翁已经没落了,还是要靠自己和百度。以上都是我的真心话(我算一个半路出家的吧),祝你好运。
 
这个不算是基础的吧...这个我觉得难度挺大...百度查过,没有搞明白,然后才上来问.
 
查查以前的帖子应该有类似问题的。前面几行就是以":"为分隔符,读取每行最后一个字符串。后面几行数据就是以tab为分隔符,读取第七个字符串吧。split(string,char(9));
 
后面几行数据就是以tab为分隔符没有看到tab?
 
其实方法有很多,用正则表达式也可以,直接每行每行进行读除,然后对字符串进行操作。下面的代码用你贴的数据测试了一下的,效果还行,是用正则表达式来实现的。但是有要求,分隔付只能是一个<TAB>每行结尾处不能有空格及其它字符。var TextFile: TStringList; MyRegExp, Matches: OleVariant; i: integer;begin TextFile := TStringList.Create; TextFile.LoadFromFile('./test.txt'); MyRegExp := CreateOleObject('VBScript.RegExp'); MyRegExp.Global := true; MyRegExp.IgnoreCase := false; MyRegExp.Pattern := '([/d.]*)/s[/w]*/s/n'; //找出以数据开头中间有TAB及任意字符并以换行结尾的字符串 具体参阅正则表达式手册跟扰不同情况设定不能的正则规则即可。 if MyRegExp.Test(TextFile.Text) then begin Matches := MyRegExp.execute(TextFile.Text); for i := 1 to Matches.count do //显示找到的结果 begin Memo2.Lines.Add(Format('找到的第%d个:%s', [i, Matches.item[i - 1].SubMatches[0]])); end; end;附 test.txt文件内容如下1.486 2 BB S 3.76417e4 2.39344e-3 83.4061 C12.708 2 BB 866.13147 1.52264e-3 2.0308 CO24.036 1 BB X 164.57686 1.78458e-3 3.9449 C3H84.254 1 BB 34.53477 1.30420e-3 0.7569 iC4H104.434 1 BB 35.11552 1.31402e-3 1.427 nC4H105.062 1 BB 17.85480 1.02939e-3 0.4789 iC5H125.371 1 BB 9.07319 1.02866e-3 0.3893 nC5H126.612 2 BP 1340.55762 1.62436e-3 6.343 C2H66.650 1 - - 0.2686 C68.343 2 BB 361.30563 1.77467e-3 0.6686 N28.900 1 - - 0.2019 C711.556 1 VBA+ 99.02929 6.43168e-4 0.0686 C814.050 1 - - 0.0153 C916.550 1 - - - C10
 
前段时间孩子病了.今天刚回来.谢谢FW们的帮助....散分了....
 
我去试试。
 
vsun,你好。提示,下面这个没有申明。。。。是不是在uses 里不要添加一个东西。。。[Error] Unit2.pas(37): Undeclared identifier: 'CreateOleObject'
 
请vsun,加我QQ:328844156
 
我的代码需要uses ComObj单元的,忘了说了,不过我看你没有看delphi帮助的习惯吧。 CreateOleObject functionSee also ExampleInstantiates an Automation object.UnitComObjCategoryCOM utilitiesDelphi syntax:function CreateOleObject(const ClassName: string): IDispatch;delphi帮助里的说明很清楚了,使用此函数要加载ComObj单元。
 
我的英文不行.看帮助看懂的不多.所以帮助就看的少.不过谢谢你了...
 
加了,ComObj编译过去了.但这句指定了TextFile.LoadFromFile('./test.txt');文本文件,我想实现的是随意位置的文本文件.比如,123456.TXT放在D:/123下.实际中,我用了2个窗体,下面是窗体1的代码: Button1: TButton; Button2: TButton; OpenDialog1: TOpenDialog; ListBox1: TListBox; Edit1: TEdit; Button3: TButton; memo1: TMemo;implementation uses unit2;{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);begin form2.Show ;end;procedure TForm1.Button2Click(Sender: TObject);begin OpenDialog1.Filter := '&Icirc;&Auml;±&frac34;&Icirc;&Auml;&frac14;&thorn;(*.txt)|*.txt'; // &Ouml;&raquo;&Iuml;&Ocirc;&Ecirc;&frac34;&Icirc;&Auml;±&frac34;&Icirc;&Auml;&frac14;&thorn;&frac14;&Oacute;&Otilde;&acirc;&frac34;&auml;&raquo;° if OpenDialog1.Execute then Edit1.Text:=OpenDialog1.FileName ; listbox1.Items.Add(OpenDialog1.FileName); Memo1.Lines.LoadFromFile(OpenDialog1.FileName);end;你的代码在窗体2里,Memo1: TMemo; Button1: TButton;
 
无语,你会delphi吗?
 
不大会.以前从教科书看的都是加减法小程序,到实际中,书上看的都用不上了.下一步我想实现打开任意位置的文本文件.TextFile.LoadFromFile('./test.txt');//这一句是不是要修改一下.
 
后退
顶部