D
databox
Unregistered / Unconfirmed
GUEST, unregistred user!
文件格式如下﹕
ORD2001101811234789
A100
B100
ORD2001101811234790
A100
B100
C200
D200
第一排和第四排是一種格式﹐而其他的又是另一種格式。格式如下﹕
ORD表示訂單﹐20011018表示日期﹐11234790表示訂單號﹐這三個要分開
下面A100﹐表示A產品100﹐B產品100﹐而每張單可能根據數量不同而所占行數不同。
我知道能根據文件類型讀出文件﹐但格式又有一定變動﹐怎么做呢﹖我實在不想一行一行的
讀出來﹐再COPY分段﹐再判斷。
我試過﹐寫了一段代碼如下﹕
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type TOrder=record
No:string[5];
Name:string[10];
Number:string[4];
end;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
aa:array[0..2] of TOrder;
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var f:File of TOrder;
i:integer;
begin
aa[0].No:='11111';
aa[0].Name:='The First';
aa[0].Number:='1000';
aa[1].No:='11112';
aa[1].Name:='The Second';
aa[1].Number:='2000';
aa[2].No:='11113';
aa[2].Name:='The Third';
aa[2].Number:='3000';
AssignFile(f,'d:/TOrder.txt');
ReWrite(f);
for i:=0 to 2 do
Write(f,aa);
CloseFile(F);
end;
end.
但發現三個數據在一排﹐并且是亂碼(不是文本格式)﹐我想怎么寫出去不是亂碼。分文本
方式好像又不行。這是照著格式寫﹐先解決此問題。
第二個問題﹐如何讀出像我上面要求的那樣﹐有一定格式但又有所不同﹐如何以格式化讀出﹖
注﹕文件是文本文件﹐所以我要寫進去也必須是文本格式﹐讀的也是文本格式。
謝謝大家﹗
ORD2001101811234789
A100
B100
ORD2001101811234790
A100
B100
C200
D200
第一排和第四排是一種格式﹐而其他的又是另一種格式。格式如下﹕
ORD表示訂單﹐20011018表示日期﹐11234790表示訂單號﹐這三個要分開
下面A100﹐表示A產品100﹐B產品100﹐而每張單可能根據數量不同而所占行數不同。
我知道能根據文件類型讀出文件﹐但格式又有一定變動﹐怎么做呢﹖我實在不想一行一行的
讀出來﹐再COPY分段﹐再判斷。
我試過﹐寫了一段代碼如下﹕
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type TOrder=record
No:string[5];
Name:string[10];
Number:string[4];
end;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
aa:array[0..2] of TOrder;
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var f:File of TOrder;
i:integer;
begin
aa[0].No:='11111';
aa[0].Name:='The First';
aa[0].Number:='1000';
aa[1].No:='11112';
aa[1].Name:='The Second';
aa[1].Number:='2000';
aa[2].No:='11113';
aa[2].Name:='The Third';
aa[2].Number:='3000';
AssignFile(f,'d:/TOrder.txt');
ReWrite(f);
for i:=0 to 2 do
Write(f,aa);
CloseFile(F);
end;
end.
但發現三個數據在一排﹐并且是亂碼(不是文本格式)﹐我想怎么寫出去不是亂碼。分文本
方式好像又不行。這是照著格式寫﹐先解決此問題。
第二個問題﹐如何讀出像我上面要求的那樣﹐有一定格式但又有所不同﹐如何以格式化讀出﹖
注﹕文件是文本文件﹐所以我要寫進去也必須是文本格式﹐讀的也是文本格式。
謝謝大家﹗