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.14 19:15
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 무명인
      1999.05.15 05:05
      북해 wrote: > 안녕하세요. SQL문을 사용하려는데 자꾸 에러가 나네요. Edit.Text가 Change될 때마다 아래...
    • 왕초보
      1999.05.14 20:18
      with query1 do Begin sql.add('select * from 테이블'); sql.add('where 성명 like '''+edit1.Text+'%...
    • 북해
    • 1999.05.14 19:00
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.14 20:15
      보통 컴포넌트를 설치하는 방법은 두가지 입니다. 첫째, PAS나 .DCU파일을 가지고 하는방법. 둘째, DPK나...
    • 왕초보
      1999.05.14 20:15
      델파이 component 메뉴에서 install component를 선택하시면 컴포넌트 모듈(*.pas, *.dcu)를 선택할 수 있...
    • 김승현
    • 1999.05.14 06:01
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 왕초보
      1999.05.14 18:16
      저도 초보라서.. 정확한 답변이 될런지는 모르겠지만 도움일 될까해서 제가 Dll에서 db쓰는 source를 알...
    • 땡글이
    • 1999.05.14 05:27
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김영대
      1999.05.14 18:08
      땡글이 wrote: > 제가 몇일전에 TreeView에 대해 질문은 올렸더니 고맙게도 답장을 써주셨더군요. > 근데...
    • 1999.05.14 02:45
      이누리 wrote: > EditBox 내의 오른쪽 정렬이 되지 않는 관계로.. > > 편법으로.. 문자열앞에 공백을 ...
    • 이영호
    • 1999.05.14 02:18
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 1999.05.14 02:49
      이영호 wrote: > 오라클에 접속하려고 데이타베이스컴포넌트의 속성을 아래와 같이 주었는데 > db1.Pa...
    • 이정욱
      1999.05.14 03:12
      ParentComp := GetOwner as TWinControl; 로 고쳐서 해보세요... 장담은 못합니다... ^^; 왕초보 wr...
    • 강지영
    • 1999.05.14 01:10
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 1999.05.14 01:29
      강지영 wrote: > ShellExecute 를 사용하려고 하는데 > 파라미터 전달하는 것을 모르겠습니다. > 예를 ...
    • 왕초보
      1999.05.14 01:27
      ShellExecute (Handle,'open', 'notepad','c:config.sys','',SW_SHOWNORMAL); 와 같이 파리미터...
    • 왕초보
    • 1999.05.14 00:02
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.14 03:27
      아래의 문을 참고해서 디자인타임일경우에는 못하게 하시고 런타임인경우에만 실행하게 해보세요. if ...
    • 건맨
    • 1999.05.13 23:58
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 왕초보
      1999.05.14 00:07
      Interbase 를 설치하면 자동으로 깔리는 PDF문서를 참조하세요... 영문으로 되어 있지만 모두 출력을 하면...
    • 정용철
    • 1999.05.13 23:31
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.14 03:34
      NMOCOD.DLL, NMORENU.DLL, NMSCKN.DLL, NMFTPSN.DLL, OLEPRO32.DLL 을 같이 배포하셔야 합니다. 복사만 ...
    • 은철수
    • 1999.05.13 22:25
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 은철수
      1999.05.14 02:00
      하윤철 wrote: > 같은 질문의 답을 델파이 팁페이지에서 구할수 있었습니다... > > http://board.membe...
    • 이호선
    • 1999.05.13 21:36
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.13 23:25
      NCHitTest 메세지가로채서 사용하는 방법과, 또 하나의 ReleaseCapture와 SendMessage를 사용하는 두가지 ...
    • 북해
    • 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: > 안녕하세요.. > 델파이 데리고 일하는 사람입니다. > 도움을 바랍니다. > 원하는 것이...