안녕하세요 꾸벅~!
function TForm1.FileExists(FileName: string): Boolean;
var
F: TextFile;
begin
{$I-}
AssignFile(F, FileName);
FileMode := 0;
Reset(F);
CloseFile(F);
{$I+}
FileExists := (IOResult = 0) and (FileName <> '');
end;
procedure TForm1.Button1Click(Sender: TObject);
var
F: TextFile;
Password: String;
begin
if FileExists('D:worksky.txt') then
begin
AssignFile(F, 'D:worksky.txt');
Reset(F);
Read(F);
Edit1.Text := Password;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
F: TextFile;
Password: Pchar;
Len: DWord;
begin
Len := Length(Edit1.Text);
Password := StrAlloc(1 + Len);
if Length(Edit1.Text) <> 0 then
begin
if FileExists('D:worksky.txt') = False then
FileCreate('D:worksky.txt');
AssignFile(F, 'D:worksky.txt');
Rewrite(F);
Write(F, Password);
end;
end;
이렇게 했을때 Write(F, Password)에서 IO에러가 생김니다 저의 의도는
간단한 텍스트 파일 생성후 Stirng의 저장과 읽기입니다. 너무 초보라서
위에것도 도움말보고 열심히 해보긴 했는데 여기서부터는 모르겠습니다.
자세한 답변 부탁드립니다. 꾸벅~! 새해 복 많이 받으세요
> 안녕하세요 꾸벅~!
> function TForm1.FileExists(FileName: string): Boolean;
> var
> F: TextFile;
> begin
> {$I-}
> AssignFile(F, FileName);
> FileMode := 0;
> Reset(F);
> CloseFile(F);
> {$I+}
> FileExists := (IOResult = 0) and (FileName <> '');
> end;
>
> procedure TForm1.Button1Click(Sender: TObject);
> var
> F: TextFile;
> Password: String;
> begin
> if FileExists('D:worksky.txt') then
> begin
> AssignFile(F, 'D:worksky.txt');
> Reset(F);
> Read(F);
> Edit1.Text := Password;
> end;
> end;
>
> procedure TForm1.Button2Click(Sender: TObject);
> var
> F: TextFile;
> Password: Pchar;
> Len: DWord;
> begin
> Len := Length(Edit1.Text);
> Password := StrAlloc(1 + Len);
> if Length(Edit1.Text) <> 0 then
> begin
> if FileExists('D:worksky.txt') = False then
> FileCreate('D:worksky.txt');
> AssignFile(F, 'D:worksky.txt');
> Rewrite(F);
> Write(F, Password);
> end;
> end;
> 이렇게 했을때 Write(F, Password)에서 IO에러가 생김니다 저의 의도는
> 간단한 텍스트 파일 생성후 Stirng의 저장과 읽기입니다. 너무 초보라서
> 위에것도 도움말보고 열심히 해보긴 했는데 여기서부터는 모르겠습니다.
> 자세한 답변 부탁드립니다. 꾸벅~! 새해 복 많이 받으세요
안녕하세요..
답변이 될지는 모르지만, button1click event에서 file을 열고 read한 후에 closefile하지 않으셔서 생기는 오류가 아닌가 합니다. 제가 볼 때 button1을 클릭한 후에 edit1에서 입력하고 나서 ,button2를 클릭하는것 같은데, close하지 않은 동일한 file(..sky.text).을 다시 assignfile하면 에러가 발생합니다. 물론 button2를 클릭한 후에도 꼭 closefile하시기 바랍니다.
그리고, button2 클릭시 password를 edit1.text에서 받아오려고 하시는 것 같은데, 저의 짧은 소견은, 바로 password := Pchar(edit1.text);하셔야 제대로 들어갈 것 같습니다.
아는 것도 없으면서 괜히 헷갈리게 한 건 아닌지 걱정이네요.
그럼 좋은 오후되세요. 새해 복 많이 받으시고...