如何设计delphi程序,用来读取、搜索和处理TXT文件中的数据,然后将处理过的数据显示在delphi的界面上。
我是菜鸟,刚学delphi,需要用它来做管理比赛成绩。我的想法是这样的:先用protel软件模拟比赛过程,得到TXT格式的报表,然后设计delphi程序,用来读取、搜索,...
我是菜鸟,刚学delphi,需要用它来做管理比赛成绩。我的想法是这样的:先用protel软件模拟比赛过程,得到TXT格式的报表,然后设计delphi程序,用来读取、搜索,过滤和处理TXT文件中的数据,最后将各个名次对应的运动员名字显示出来。S1代表运动员1,H1代表比赛第一名,以此类推。而得到的TXT文件有需要的和不需要的数据,但不知道具体行数,靠搜索关键字,需要网络线NetS?-1后面的数据,例如(NetS1-1 H2-1 S1-1) 中,表示比赛第二名是运动员1号。现在需要设计程序,在delphi中,显示成绩所对应的运动员名单。例如成绩第二名对应显示的是S1。当然我的方案很粗糙,如果网友能提供更好的方案,就是更好的排版和规划,但必须用到protel与delphi软件,我将不胜感激。
展开
3个回答
展开全部
楼主一不小写开了两个贴,我已经在第一个帖作答了,看能不能解决楼主的问题。
-----
满意回答 上传的图太小了,只有尽最大努力为你写一段代码,其中包含了对文本文件读取以及搜索关键字的方法(我加了注释),希望对你有所帮助
代码如下:
文件名:Project1.dpr
内容:
program Project1;
uses
Forms,
Unit1 in 'Unit1.pas' {Form1};
{$R *.res}
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
文件名:Unit1.dfm
内容:
object Form1: TForm1
Left = 151
Top = 107
Width = 696
Height = 480
Caption = 'Form1'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
object Label1: TLabel
Left = 128
Top = 104
Width = 48
Height = 13
Caption = #31532#19968#21517#65306
end
object Label2: TLabel
Left = 128
Top = 136
Width = 48
Height = 13
Caption = #31532#20108#21517#65306
end
object Label3: TLabel
Left = 128
Top = 168
Width = 48
Height = 13
Caption = #31532#19977#21517#65306
end
object Edit1: TEdit
Left = 200
Top = 104
Width = 121
Height = 21
TabOrder = 0
Text = 'Edit1'
end
object Edit2: TEdit
Left = 200
Top = 136
Width = 121
Height = 21
TabOrder = 1
Text = 'Edit2'
end
object Edit3: TEdit
Left = 200
Top = 168
Width = 121
Height = 21
TabOrder = 2
Text = 'Edit3'
end
object Button1: TButton
Left = 360
Top = 168
Width = 75
Height = 25
Caption = 'Let'#39's Go'
TabOrder = 3
OnClick = Button1Click
end
end
文件名:Unit1.pas
内容:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
fs:TStringList;
i:Integer;
begin
//假设文件名为: C:\test.txt
fs:=TStringList.Create;
fs.LoadFromFile('c:\text.txt');
for i:=0 to fs.Count-1 do
begin
//搜索关键字 S1代表运动员1,H1代表比赛第一名
if fs.Strings[i]='H1-1' then //判断第一名
Edit1.Text:=fs.Strings[i+1]; //显示运动员名
if fs.Strings[i]='H2-1' then //判断第二名
Edit2.Text:=fs.Strings[i+1]; //显示运动员名
if fs.Strings[i]='H3-1' then //判断第三名
Edit3.Text:=fs.Strings[i+1]; //显示运动员名
end;
fs.Free;
end;
end.赞同0| 评论
向TA求助 回答者: arvsoft | 四级采纳率:48%
擅长领域: 暂未定制
参加的活动: 暂时没有参加的活动
提问者对回答的评价:
非常感谢!
-----
满意回答 上传的图太小了,只有尽最大努力为你写一段代码,其中包含了对文本文件读取以及搜索关键字的方法(我加了注释),希望对你有所帮助
代码如下:
文件名:Project1.dpr
内容:
program Project1;
uses
Forms,
Unit1 in 'Unit1.pas' {Form1};
{$R *.res}
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
文件名:Unit1.dfm
内容:
object Form1: TForm1
Left = 151
Top = 107
Width = 696
Height = 480
Caption = 'Form1'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
object Label1: TLabel
Left = 128
Top = 104
Width = 48
Height = 13
Caption = #31532#19968#21517#65306
end
object Label2: TLabel
Left = 128
Top = 136
Width = 48
Height = 13
Caption = #31532#20108#21517#65306
end
object Label3: TLabel
Left = 128
Top = 168
Width = 48
Height = 13
Caption = #31532#19977#21517#65306
end
object Edit1: TEdit
Left = 200
Top = 104
Width = 121
Height = 21
TabOrder = 0
Text = 'Edit1'
end
object Edit2: TEdit
Left = 200
Top = 136
Width = 121
Height = 21
TabOrder = 1
Text = 'Edit2'
end
object Edit3: TEdit
Left = 200
Top = 168
Width = 121
Height = 21
TabOrder = 2
Text = 'Edit3'
end
object Button1: TButton
Left = 360
Top = 168
Width = 75
Height = 25
Caption = 'Let'#39's Go'
TabOrder = 3
OnClick = Button1Click
end
end
文件名:Unit1.pas
内容:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
fs:TStringList;
i:Integer;
begin
//假设文件名为: C:\test.txt
fs:=TStringList.Create;
fs.LoadFromFile('c:\text.txt');
for i:=0 to fs.Count-1 do
begin
//搜索关键字 S1代表运动员1,H1代表比赛第一名
if fs.Strings[i]='H1-1' then //判断第一名
Edit1.Text:=fs.Strings[i+1]; //显示运动员名
if fs.Strings[i]='H2-1' then //判断第二名
Edit2.Text:=fs.Strings[i+1]; //显示运动员名
if fs.Strings[i]='H3-1' then //判断第三名
Edit3.Text:=fs.Strings[i+1]; //显示运动员名
end;
fs.Free;
end;
end.赞同0| 评论
向TA求助 回答者: arvsoft | 四级采纳率:48%
擅长领域: 暂未定制
参加的活动: 暂时没有参加的活动
提问者对回答的评价:
非常感谢!
参考资料: http://zhidao.baidu.com/question/413851187.html?push=core&group=1
展开全部
用DELPHI的TSTRINGLIST
如aaa:=tstringlist.create;
aaa.loadfromfile(bbb.txt);
然后用FOR I:=0 TO AAA.COUNT-1 DO
BEGIN
END
来循环读取每一行
关键字用POS来判断就成!
如aaa:=tstringlist.create;
aaa.loadfromfile(bbb.txt);
然后用FOR I:=0 TO AAA.COUNT-1 DO
BEGIN
END
来循环读取每一行
关键字用POS来判断就成!
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
ADO,可以访问text,不过对于text文本的数据格式要有要求,最好像是数据库一样,一条记录一条记录这样子,可以用空格或逗号分隔符。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询