안녕하세여, txt화일을 읽어서 스트링그리드에 쓸려고 하는데
실행하면 i/o 에러 나면서 pc멈춰버리네여
꼭좀 도와주세여 부탁합니다. 델파이를 사랑하는 초보자,,,,
unit packet;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TCSpacket = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
edtstarttime: TEdit;
edtendtime: TEdit;
Button1: TButton;
Button2: TButton;
Button3: TButton;
procedure editclear;
procedure file1init;
procedure file1read;
procedure Button3Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
CSpacket: TCSpacket;
implementation
uses packet_out;
const
FILE1NAME = 'part1.txt'; // 불러올 화일 이부분
{$R *.DFM}
type
Table = Record
kukname :string;
kukno : integer;
kukstate : string;
kuktime1 : string;
kuktime2 : string;
kukdietime : string;
kukresult : string;
kukname1 : string;
end;
var
part1file : textfile;
part1data : string;
total : array [0..100] of Table;
// 입력 받은 내용을 임시로 저장할 변수
rstarttime, renddtime : string;
// 화일 내용을 임시로 저장할 변수
unit packet;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TCSpacket = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
edtstarttime: TEdit;
edtendtime: TEdit;
Button1: TButton;
Button2: TButton;
Button3: TButton;
procedure editclear;
procedure file1init;
procedure file1read;
procedure Button3Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
CSpacket: TCSpacket;
implementation
uses packet_out;
const
FILE1NAME = 'part1.txt';
{$R *.DFM}
type
Table = Record
kukname :string;
kukno : integer;
kukstate : string;
kuktime1 : string;
kuktime2 : string;
kukdietime : string;
kukresult : string;
kukname1 : string;
end;
var
part1file : textfile;
part1data : string;
total : array [0..100] of Table;
// 입력 받은 내용을 임시로 저장할 변수
rstarttime, renddtime : string;
// 화일 내용을 임시로 저장할 변수
Fpart1kukname ,Fpart1kukstate,Fpart1kuktime1,Fpart1kuktime2,
Fpart1dietime, Fpart1result,Fpart1kukname1,starttime1,endtime1 :string;
Fpart1kukno : integer;
procedure TCSpacket.editclear;
begin
edtstarttime.clear;
edtendtime.clear;
edtstarttime.SetFocus;
end;
procedure TCSpacket.file1init;
begin
AssignFile(part1file,FILE1NAME);
if FileExists(FILE1NAME) then
begin
Reset(Part1File);
end
else
begin
ShowMessage('경고! *.TXT FILE이 하나가 존재 하지 않읍니다!');
close;
end;
end;
// file read 함수
procedure TCSpacket.file1read;
begin
readln(part1File,part1data);
{ Fpart1kukname,Fpart1kukno,Fpart1kukstate,Fpart1kuktime1,Fpart1kuktime2,
Fpart1dietime, Fpart1result,Fpart1kukname1,starttime1,endtime1 :string;
}
Fpart1kukname :=trim(copy(part1data,1,6));
Fpart1kukno := strToint(copy(part1data,7,2));
Fpart1kukstate := copy(part1data,16,8);
Fpart1kuktime1 := copy(part1data,27,20);
Fpart1kuktime2 := copy(part1data,48,6);
Fpart1dietime := copy(part1data,55,7);
Fpart1result := copy(part1data,63,22);
Fpart1kukname1 := copy(part1data,85,8);
end;
procedure TCSpacket.Button3Click(Sender: TObject);
begin
close;
end;
procedure TCSpacket.Button2Click(Sender: TObject);
var
i : integer;
begin
for i := 0 to 100 do
begin
if not (total[i].kukno = 0) then
begin
with CSpacket_out.stringgrid1 do
begin
cells[0,rowcount-1] := total[i].kukname;
cells[1,rowcount-1] := inttostr(total[i].kukno);
cells[2,rowcount-1] := total[i].kukstate;
cells[3,rowcount-1] := total[i].kuktime1;
cells[4,rowcount-1] := total[i].kuktime2;
cells[5,rowcount-1] := total[i].kukdietime;
cells[6,rowcount-1] := total[i].kukresult;
cells[7,rowcount-1] := total[i].kukname1;
rowcount := rowcount + 1;
end; //end of with
end;
end; // end of for
CSpacket_out.show;
end;
procedure TCSpacket.Button1Click(Sender: TObject);
var
i,j : integer;
begin
file1init;
if EOF(part1file) then
begin
closefile(part1file);
editclear;
exit;
starttime1 := trim(edtstarttime.text);
endtime1 := trim(edtendtime.text);
for i := 0 to 100 do
begin
file1read;
if EOF(part1file) then
begin
closefile(part1file);
editclear;
exit;
end;
total[i].kukname := Fpart1kukname;
total[i].kukno := Fpart1kukno;
total[i].kukstate := Fpart1kukstate;
total[i].kuktime1 := Fpart1kuktime1;
total[i].kuktime2 := Fpart1kuktime2;
total[i].kukdietime := Fpart1dietime;
total[i].kukresult := Fpart1result;
total[i].kukname1 := Fpart1kukname1;
end;
end; // for
end;
end.