Q&A

  • txt화일 읽어와서 실행중 에러(i/o)
안녕하세여, 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.

0  COMMENTS
    • 북해
    • 1999.05.13 20:13
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 1999.05.13 21:38
      북해 wrote: > 비트맵버튼에서,혹은 그냥 버튼이라도, Caption에 들어갈 글자를 세로로 표기할 수 있나요...
    • 이정욱
      1999.05.13 21:20
      음냐.. 없습니다... 즉, 다른 컴포넌트를 사셔야 합니다. 아니면 Image를 버튼화 시켜서 그림으로 넣으...
    • 신호철
    • 1999.05.13 19:43
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.14 03:19
      이곳의 문제는 Close;문이 문제이군요. Close가 있지만 .. function TCSpacket.file1init : Boolean; ...
    • 북해
    • 1999.05.13 19:40
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.13 21:29
      포커스를 가진다는것은 제일 쉽게 말해서 현재 카렛(도스시절의 커서)이 있는 콘트롤을 지칭합니다. 카렛...
    • 신현숙
      1999.05.15 01:37
      신현숙 wrote: > 안녕하세요.. > 델파이 데리고 일하는 사람입니다. > 도움을 바랍니다. > 원하는 것이...
    • 남호열
      1999.05.15 01:07
      신현숙 wrote: > 안녕하세요.. > 델파이 데리고 일하는 사람입니다. > 도움을 바랍니다. > 원하는 것이...
    • 하윤철
      1999.05.13 22:36
      신현숙 wrote: > 안녕하세요.. > 델파이 데리고 일하는 사람입니다. > 도움을 바랍니다. > 원하는 것이...
    • 1999.05.13 19:11
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.13 21:42
      허걱... 리스트박스에 판넬을 넣는것은 불가능합니다. 리스트 박스에 판넬을 넣고 또 그안에 콘트롤을 놓...
    • 북해
    • 1999.05.13 18:41
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 1999.05.13 19:06
      북해 wrote: > > 테이블에다가 데이타를 삽입하려고 하는데요, 도무지 Insert가 안먹는 거에요. 분명...
    • 송수정
    • 1999.05.13 18:38
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.13 21:26
      파워러브 델파이!! 97년 3월 창간호를 참고하세요. 창간호는 무료이니 통신망에서 쉽게 구하실 수 있을것...
    • 1999.05.13 19:07
      송수정 wrote: > 제가 사용하는 것은 델파이 3.0 인데요. 어제 알려주신데로 되지 않습니다. > 3.0에서 ...
    • 안치봉
      1999.05.13 18:43
      송수정 wrote: > 제가 사용하는 것은 델파이 3.0 인데요. 어제 알려주신데로 되지 않습니다. > 3.0에서 ...
    • 북해
    • 1999.05.13 18:24
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 1999.05.13 18:27
      북해 wrote: > > 안녕하세요. 저는 왕초보인데요. OnEnter이벤트에 대해서 잘 모르겠습니다. > 상식...
    • 이정욱
      1999.05.13 19:29
      소스들이 있다면 그냥 델4에서 열어서(열었을때 경고가 하나 나오지만 YES를 눌러서 변환을 해주시면 됩니...
    • 박상현
    • 1999.05.13 12:10
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 1999.05.13 18:31
      박상현 wrote: > Out of System Resources 에러에 대한 설명과 대처 방법에 대하여 알려주시기 바랍니다. ...
    • 정용철
    • 1999.05.13 07:44
    • 2 COMMENTS
    • /
    • 0 LIKES
    • Killer
      1999.05.14 01:01
      정용철 wrote: > 안녕하세요. > > 현재 저는 msaccess db를 사용하여 델파이3.0 c/s 버젼으로 개발하...
    • 신인재
      1999.05.13 09:14
      음냐 AccessDb는 DAO 를 같이 배포하여야 작동이 됩니다. 이것은 델파이에서 지원을 하지 않은 것으로 ...
    • 이호선
    • 1999.05.13 05:15
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.13 08:31
      당연히 질이 떨어질 수 밖에 없습니다. 내부적으로 AntiAlias를 구현하기 전에는 말이죠. 그런부분을 원...
    • 이호선
    • 1999.05.13 03:10
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 신인재
      1999.05.13 05:09
      이호선 wrote: > 안녕하세요 > Outlook에서 쓰는 SMTP와 POP 서버의 주소를 얻어올려면 어떻게 > 할 수 ...
    • 이호선
      1999.05.13 05:17
      신인재 wrote: > 이호선 wrote: > > 안녕하세요 > > Outlook에서 쓰는 SMTP와 POP 서버의 주소를 얻어올...
    • 송수정
    • 1999.05.13 02:07
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.13 02:36
      델파이4라면 동적 어레이를 사용하세요. 그냥.. aaa : array of integer; 해 놓고.. 크기를 잡을때 Set...
    • 송수정
      1999.05.13 18:40
      이정욱 wrote: > 델파이4라면 동적 어레이를 사용하세요. > 그냥.. > aaa : array of integer; > 해 놓...