1. 2011. 4. 21. 14:49 Tutorials/IDE]Delphi 7.2

폼을 아래와 같이 작성합니다.


전역변수 지정 TFileStream 배열을 만들어두고 대상 파일에 다중 엑세스 할 수 있습니다.
var
  Form1: TForm1;
  index: Cardinal;
  fm: array [0..1] of TFileStream;

implementation

버튼 이벤트 영역
procedure TForm1.SpeedButton1Click(Sender: TObject);begin
  if FileExists('test.txt') = False then
    if not Assigned(fm[0]) then begin//파일이 존재하지 않으면 생성
      fm[0]:=TFileStream.Create('test.txt',fmCreate);
      fm[0].Free;
    end;
  if not Assigned(fm[0]) then//파일 공유 열기 #1
    fm[0]:=TFileStream.Create('test.txt', fmOpenReadWrite or fmShareDenyNone);
  if not Assigned(fm[1]) then//파일 공유 열기 #2
    fm[1]:=TFileStream.Create('test.txt', fmOpenReadWrite or fmShareDenyNone);
end;

procedure TForm1.SpeedButton2Click(Sender: TObject);begin
  if Assigned(fm[0]) then
    fm[0].Free;//파일 닫기 #1
    fm[0] := nil;
  if Assigned(fm[1]) then
    fm[1].Free;//파일 닫기 #2
    fm[1] := nil;
  index := 0;//쓰기 횟수 초기화
end;

procedure TForm1.SpeedButton3Click(Sender: TObject);
var data: String;
begin                 //젓번째 파일 스트림 으로 기록
  data := '#1 파일 기록';//문자열 포인터 0 번지는 길이값이 들어갑니다.
  if Assigned(fm[0]) then begin
    fm[0].Position := 0;              //기록시에 포지션 자동 증감
    fm[0].Write(data[1],Length(data));//1번지부터 문자열값
  end;
end;

procedure TForm1.SpeedButton4Click(Sender: TObject);
var data: String;
begin                 //두번째 파일 스트림 으로 기록
  data := '#2 '+IntToHex(index,8)+' | ';//문자열 포인터 0 번지는 길이값이 들어갑니다.
  Inc(index);
  if Assigned(fm[1]) then begin
    fm[1].Write(data[1],Length(data));//1번지부터 문자열값
  end;
end;
Posted by Nightly Luna
,
® © Tanny Tales
/ rss