您的位置首页生活百科

Teechart如何从DAT或TEXT文件中导入数据

Teechart如何从DAT或TEXT文件中导入数据

的有关信息介绍如下:

Teechart如何从DAT或TEXT文件中导入数据

大多数开发人员在使用TeeChart进行开发的时候,都需要访问包含在文本文档中的一些数据,本次教程将详细讲解如何去实现这一步骤。

文本文件通常包含使用空格键或者是TAB键分隔开的数字和文字:

比如下面的文本,包含两个字段,使用空格作为字段分隔:

0.1 24

0.5 143

0.2 321

0.1 100

从一个文本文件读取数据(如果列分隔符是正确的),开发者可以使用TSeriesTextSource组件,可以根据自身的数据设置ileName、Fields和FieldSeparator属性。然后只需通过设置TSeriesTextSource.Series或Series.DataSource属性将系列文本源组件连接到一个图表系列。

1 创建一个新的应用程序。(File->New->Application)

2 从"Additional"面板选项卡中拖放TChart组件。

3 双击Chart1组件显示TeeChart编辑对话框。(或右键单击Chart1并单击"Edit...")

4 单击"Add..."按钮,选择"Line"系列风格,单击OK按钮。(或双击"Line"图表)

5 关闭编辑器对话框(或按Esc键关闭它)。

6 找到“TeeChart”组件面板选项卡并拖放SeriesTextSource组件。

7 双击SeriesTextSource1组件显示编辑器对话框,填写以下属性:

VCL代码:

unit UImportData;

interface

uses

Windows,Messages, SysUtils, Classes, Graphics, Controls, Forms,

Dialogs,TeEngine, Series, TeeURL, TeeSeriesTextEd, ExtCtrls,

TeeProcs,Chart, StdCtrls, Buttons;

type

TForm1 =class(TForm)

Chart1:TChart;

Series1: TLineSeries;

SeriesTextSource1: TSeriesTextSource;

Panel1:TPanel;

BitBtn1: TBitBtn;

procedure BitBtn1Click(Sender: TObject);

private

{ Privatedeclarations }

public

{ Publicdeclarations }

end;

var

Form1:TForm1;

implementation

{$R *.dfm}

procedureTForm1.BitBtn1Click(Sender: TObject);

begin

withSeriesTextSource1 do

begin

//Setup fields (columns in text file)

Fields.Clear;

AddField('X',1);

AddField('Y',2);

// Setseparators

FieldSeparator := ' ';

DecimalSeparator := '.';

// Setfile name containing text data

FileName := 'test.dat';

//Series to add data

Series:= Series1;

// Loaddata from file into Series

Active:= True;

end;

//Example of setting axes scales.

// Not necessaryis axes already have Automatic:=True.

Series1.GetVertAxis.SetMinMax(0,1);

Series1.GetHorizAxis.SetMinMax(3864.90,3865.50);

end;

end.

Displaying the SeriesTextSource editor dialog

If you wish to show the SeriesTextSource editordialog at runtime, simply drop a button and type this code at Button1Clickevent:

procedureTForm1.Button1Click(Sender: TObject);

begin

// Thisprocedure is located at TeeSeriesTextEd.pas unit:

TeeEditSeriesTextSource(SeriesTextSource1);

end;