Q&A

  • 메모리 바이올레이션 에러가납니다. 왜그런지 답변부탁드려요.
procedure TForm1.SpeedButton1Click(Sender: TObject);

var strlist1:Tstringlist; Kicho_R : TIniFile; DirInfo: TSearchRec; r,i : Integer;

begin

StrList1 := TStringList.Create;

r := FindFirst(ExtractFilePath(Application.ExeName)+'ini*.ini', FaAnyfile, DirInfo);

while r = 0 do begin

if ((DirInfo.Attr and FaDirectory <> FaDirectory) and

(DirInfo.Attr and FaVolumeId <> FaVolumeID)) then

StrList1.add(DirInfo.Name);

r := FindNext(DirInfo);

end;



for i := 0 to StrList1.count -1 do

begin



Kicho_R := Tinifile.Create(StrList1[i]);

Form1.Table1.append;

Form1.Table1.FieldByName('User_Name').AsString := Kicho_R.readstring('요청인','이름','');

Form1.Table1.FieldByName('User_Email').AsString := Kicho_R.readstring('요청인','메일주소','');Form1.Table1.Post;

Kicho_R.Free;

DbiSaveChanges(Form1.Table1.Handle);

end;

strlist1.free;

Form1.label1.caption:=Kicho_R.readstring('요청인','이름','');



end;

1  COMMENTS
  • Profile
    박서규 2001.07.10 19:28
    김성문 wrote:

    > procedure TForm1.SpeedButton1Click(Sender: TObject);

    > var strlist1:Tstringlist; Kicho_R : TIniFile; DirInfo: TSearchRec; r,i : Integer;

    > begin

    > StrList1 := TStringList.Create;

    > r := FindFirst(ExtractFilePath(Application.ExeName)+'ini*.ini', FaAnyfile, DirInfo);

    > while r = 0 do begin

    > if ((DirInfo.Attr and FaDirectory <> FaDirectory) and

    > (DirInfo.Attr and FaVolumeId <> FaVolumeID)) then

    > StrList1.add(DirInfo.Name);

    > r := FindNext(DirInfo);

    > end;

    >

    > for i := 0 to StrList1.count -1 do

    > begin

    >

    > Kicho_R := Tinifile.Create(StrList1[i]);

    > Form1.Table1.append;

    > Form1.Table1.FieldByName('User_Name').AsString := Kicho_R.readstring('요청인','이름','');

    > Form1.Table1.FieldByName('User_Email').AsString := Kicho_R.readstring('요청인','메일주소','');Form1.Table1.Post;

    > Kicho_R.Free;

    > DbiSaveChanges(Form1.Table1.Handle);

    > end;

    > strlist1.free;

    > Form1.label1.caption:=Kicho_R.readstring('요청인','이름','');

    >

    > end;





    보기 쉽게 컬럼을 제 나름대로 맞춰봤습니다..



    procedure TForm1.SpeedButton1Click(Sender: TObject);

    var strlist1:Tstringlist;

    Kicho_R : TIniFile;

    DirInfo: TSearchRec;

    r,i : Integer;

    begin

    StrList1 := TStringList.Create;

    r := FindFirst(ExtractFilePath(Application.ExeName)+'ini*.ini', FaAnyfile, DirInfo);

    while (r = 0) do

    begin

    if ((DirInfo.Attr and FaDirectory <> FaDirectory) and

    (DirInfo.Attr and FaVolumeId <> FaVolumeID)) then

    StrList1.add(DirInfo.Name);

    r := FindNext(DirInfo);

    end;



    for i := 0 to StrList1.count -1 do

    begin

    Kicho_R := Tinifile.Create(StrList1[i]);

    Form1.Table1.append;

    Form1.Table1.FieldByName('User_Name').AsString := Kicho_R.readstring('요청인','이름','');

    Form1.Table1.FieldByName('User_Email').AsString := Kicho_R.readstring('요청인','메일주소','');Form1.Table1.Post;

    Kicho_R.Free;

    DbiSaveChanges(Form1.Table1.Handle);

    end;

    strlist1.free;

    Form1.label1.caption:=Kicho_R.readstring('요청인','이름','');



    end;



    님의 소스인데 이렇게 칸을 정리해서 죄송합니다..

    이 소스대로라면 Kicho_R이 for 루프를 돌면서 create,free가 반복되는데 루프를 마치고 나와서



    Form1.label1.caption:=Kicho_R.readstring('요청인','이름','');



    를 넣게 되면 에러가 나오지 않을까요?