Q&A

  • (질문)제발 좀 알려주세요. 코드 어디가 잘못되었는지..
고수님들 부탁드립니다.



테이블 리스트의 내용을 파일에 저장할때 일련번호를 매길라고 하거든요.



리스트의 내용을 개별 파일로 저장시 일련번호 지정 대화상자가 뜨면서 사용자가 지정한 일련번호로 파일명이 저장되는 겁니다.



코드는 다음과 같습니다.



procedure ............



var

A: TAuctionData; // 테이타 내용

X: TfrmView; // 데이타를 텍스트로 보는 폼



begin

Result := TStringList.Create;

A := TAuctionData.Create;

X := TfrmView.Create(Self);

with A, DM.DQMaster do // 설정한 테이타 소스

begin

ID := FieldByName('ID').AsString;



.....생략.......



NOTES := FieldByName('NOTES').AsString;

end;

Result := X.Convert2(A); //데이타 내용을 텍스트폼으로 변환

X.Free;

end;





var

OutPut: TStringList; // 데이타 리스트

A : TAuctionData; // 데이타 내용

Footer: String; // 텍스트파일 생성시 포함되는 내용

sKey: String; // 의미 없는 빈칸 생성

sFileName: String; // 저장시 지정되는 파일명

ilNum : Integer; // 일련번호 지정 ★★★★



begin

try

ilnum := ''; //★★★★★★★

InputQuery('지정할 일련번호', '일련번호', ilNum);

if ilNum <> '' then

A := TAuctionData.Create;

OutPut := TStringList.Create;

OutPut.LoadFromFile(ExtractFilePath(Application.ExeName)+'Footer.txt');

Footer := OutPut.Text;

OutPut.Clear;



with DM.DQMaster do

begin

DisableControls;

First;

while not eof do // 테이블리스트 끝까지 ...

begin

sFileName := ExtractFilePath(Application.ExeName)+'EXPORT'+ //디렉토리설정 '.art-'+IntToStr(ilNum)+'.txt'; //저장될 파일명 지정

--> 이 부분이 일련번호 지정 값(1씩 증가됨) // ★★★★

OutPut.Clear;

sKey := '';

OutPut.Add(Data.Text); // 변환한 데이타 내용 텍스트파일에 첨가

OutPut.Add('');

OutPut.Add(Footer); // 지정한 Footer.txt내용 첨가

OutPut.Add('');

OutPut.Savetofile(sFileName); // 지정한 디렉토리와 파일명으로 저장

ilNum := ilNum + 1; // 일련번호값 증가시킴

Next; // 다음 리스트로 ..

end;

First;

EnableControls;

end;

finally

A.Free;

OutPut.Free;

end;

end;







★★★★표시가 들어간 라인에서 에러가 나고 컴파일이 안됩니다.

원하는 결과를 얻기 위해 어떻게 해줘야 하나요? 알려 주세요....제발 !!

1  COMMENTS
  • Profile
    1999.06.22 20:13
    강동연 께서 말씀하시기를...

    > 고수님들 부탁드립니다.

    >

    > 테이블 리스트의 내용을 파일에 저장할때 일련번호를 매길라고 하거든요.

    >

    > 리스트의 내용을 개별 파일로 저장시 일련번호 지정 대화상자가 뜨면서 사용자가 지정한 일련번호로 파일명이 저장되는 겁니다.

    >

    > 코드는 다음과 같습니다.

    >

    > procedure ............

    >

    > var

    > A: TAuctionData; // 테이타 내용

    > X: TfrmView; // 데이타를 텍스트로 보는 폼

    >

    > begin

    > Result := TStringList.Create;

    > A := TAuctionData.Create;

    > X := TfrmView.Create(Self);

    > with A, DM.DQMaster do // 설정한 테이타 소스

    > begin

    > ID := FieldByName('ID').AsString;

    >

    > .....생략.......

    >

    > NOTES := FieldByName('NOTES').AsString;

    > end;

    > Result := X.Convert2(A); //데이타 내용을 텍스트폼으로 변환

    > X.Free;

    > end;

    >

    >

    > var

    > OutPut: TStringList; // 데이타 리스트

    > A : TAuctionData; // 데이타 내용

    > Footer: String; // 텍스트파일 생성시 포함되는 내용

    > sKey: String; // 의미 없는 빈칸 생성

    > sFileName: String; // 저장시 지정되는 파일명

    > ilNum : Integer; // 일련번호 지정 ★★★★

    >

    > begin

    > try

    > ilnum := ''; //★★★★★★★

    > InputQuery('지정할 일련번호', '일련번호', ilNum);

    > if ilNum <> '' then

    > A := TAuctionData.Create;

    > OutPut := TStringList.Create;

    > OutPut.LoadFromFile(ExtractFilePath(Application.ExeName)+'Footer.txt');

    > Footer := OutPut.Text;

    > OutPut.Clear;

    >

    > with DM.DQMaster do

    > begin

    > DisableControls;

    > First;

    > while not eof do // 테이블리스트 끝까지 ...

    > begin

    > sFileName := ExtractFilePath(Application.ExeName)+'EXPORT'+ //디렉토리설정 '.art-'+IntToStr(ilNum)+'.txt'; //저장될 파일명 지정

    > --> 이 부분이 일련번호 지정 값(1씩 증가됨) // ★★★★

    > OutPut.Clear;

    > sKey := '';

    > OutPut.Add(Data.Text); // 변환한 데이타 내용 텍스트파일에 첨가

    > OutPut.Add('');

    > OutPut.Add(Footer); // 지정한 Footer.txt내용 첨가

    > OutPut.Add('');

    > OutPut.Savetofile(sFileName); // 지정한 디렉토리와 파일명으로 저장

    > ilNum := ilNum + 1; // 일련번호값 증가시킴

    > Next; // 다음 리스트로 ..

    > end;

    > First;

    > EnableControls;

    > end;

    > finally

    > A.Free;

    > OutPut.Free;

    > end;

    > end;

    >

    >

    >

    > ★★★★표시가 들어간 라인에서 에러가 나고 컴파일이 안됩니다.

    > 원하는 결과를 얻기 위해 어떻게 해줘야 하나요? 알려 주세요....제발 !!



    안녕하세요.. 자세한 내용은 파악이 안 되지만 별표한 라인에서 에러가 나는

    이유는 간단하네요.

    iLNum이라는 변수는 integer로 선언이 되어있죠..그런데 에러나는 라인에는

    iLNum := ''; 이라고 되어있네요 이러면 Incompatible Type인가 뭐

    이런 에러가 나지 않던가요. 정수형 변수에 스트링형의 null은 들어가지

    않아요... 그밖에 문제는 이걸 먼저 해결 하고 난 다음에 해결 해야 겠지요

    그럼 즐거운 하루 되세요