a.exe에서 a.txt파일을 생성하고나서
b.exe에서 a.txt을 읽어 b.txt를 새로 만드는 프로그램입니다
그런데 a.exe에서 Timer를 발생하여 일정시간마다
a.txt를 생성하고 b.exe에서도 일정시간마다
b.txt를 생성하고 있습니다
그러다보니 a.txt 생성작업을 하는도중에
b.exe에서 a.txt를 읽어 생성작업을 하는바람에
File I/O 에러가 발생합니다
a.txt가 현재 write중이면 b.exe에서 파일생성작업을 하지
못하게 하려면 어떻게 해야할까요?
a.txt가 작업중이라는 것을 어떻게 알수 있을까요?
아래 소스에서 어디에 무엇을 삽입해야합니까?
또는 다른 함수를 어떻게 써야합니까?
File1,File2:string;
F1,F2:TetxFile;
begin
File1:='a.txt';
File2:='b.txt';
AssignFile(F1, File1);
{$i-}
Reset(F1);
{$i+}
AssignFile(F2, File2);
ReWrite(F2);
while not Eof(F1) do
begin
ReadLn(F1,Linestr);
WriteLn(F2,Linestr);
end;
CloseFile(F1);
CloseFile(F2);
end;
변수 하나를 달아서....
a.txt 가 생성시작;
변수 := '생성중';
a.txt 가 생성완료;
변수 := '생성완료';
if 변수 = '생성완료' then
a.txt 읽기
else
showmessage('a.txt가 생성중');
이렇게 하면 될 꺼 같네요.
peritus wrote:
> a.exe에서 a.txt파일을 생성하고나서
> b.exe에서 a.txt을 읽어 b.txt를 새로 만드는 프로그램입니다
> 그런데 a.exe에서 Timer를 발생하여 일정시간마다
> a.txt를 생성하고 b.exe에서도 일정시간마다
> b.txt를 생성하고 있습니다
> 그러다보니 a.txt 생성작업을 하는도중에
> b.exe에서 a.txt를 읽어 생성작업을 하는바람에
> File I/O 에러가 발생합니다
> a.txt가 현재 write중이면 b.exe에서 파일생성작업을 하지
> 못하게 하려면 어떻게 해야할까요?
> a.txt가 작업중이라는 것을 어떻게 알수 있을까요?
> 아래 소스에서 어디에 무엇을 삽입해야합니까?
> 또는 다른 함수를 어떻게 써야합니까?
> File1,File2:string;
> F1,F2:TetxFile;
> begin
> File1:='a.txt';
> File2:='b.txt';
> AssignFile(F1, File1);
> {$i-}
> Reset(F1);
> {$i+}
> AssignFile(F2, File2);
> ReWrite(F2);
> while not Eof(F1) do
> begin
> ReadLn(F1,Linestr);
> WriteLn(F2,Linestr);
> end;
> CloseFile(F1);
> CloseFile(F2);
> end;
>