목록으로

Object FILE()

Pml Basic 7

1. OBJECT FILE 이란

Object File 은 말그대로 File을 컨트롤할때 사용하는 Object입니다 파일의 읽기 쓰기 삭제 등 여러 작업이 가능합니다.

  • 구문:
!file = OBJECT FILE()

이 구문을 통해 OBJECT Object File를 생성할 수 있습니다. 생성된 !Object File를 사용하여 파일 작업을 수행할 수 있습니다.


1. Object File의 생성

Object File를 생성하려면 다음과 같이 파일 경로를 지정하여 객체를 생성합니다.

  • Object 생성하기 OBJECT FILE(|경로|)
!MyFile = OBJECT FILE('c:\TEST\list.txt')
!MyFile = OBJECT FILE('%PDMSUSER%\bob\list.txt')

이 구문을 통해 !MyFile이라는 Object File를 생성하여, 이후 파일 작업을 수행할 준비를 합니다.


2. 파일 열기 및 닫기

파일 작업을 수행하기 전에 파일을 열어야 하며, 작업이 끝난 후에는 파일을 닫아야 합니다.

  • 파일 열기:
!MyFile.Open('READ')

Open() 메서드는 파일을 지정된 모드로 엽니다.

모드에는 `'READ'`, `'WRITE'`, `'OVERWRITE'`, `'APPEND'` 가 있습니다.

다만.. read 모드로 open 해버리면 read만 가능하고 write으로 open 해버리면 write만 가능합니다

대부분에 상황에서 .Open을 사용할 일은 거의 없습니다.

  • 파일 닫기:
!MyFile.Close()

Close() 메서드는 열려 있는 파일을 닫습니다.


4. 파일에서 데이터 읽기

파일에서 데이터를 읽어오려면 ReadFile() 혹은 ReadRecord() 메서드를 사용합니다.

  • ReadFile()
!MyFile = OBJECT FILE(|D:\zz.txt|)
q var !MyFile.readfile()

.readfile() 을 이용하면 Array 형태로 파일 결과 값을 받을 수 있습니다.

  • ReadRecord()
!MyFile = OBJECT FILE(|D:\zz.txt|)
!MyFile.Open('read')
q var !MyFile.ReadRecord()

.ReadRecord() 를 사용시 .ReadRecord() 를 한번 사용할때마다 한줄씩 file을 읽습니다 단 .Open('read') read 상태로 열었을때만 사용 가능합니다


5. 파일에 데이터 쓰기

파일에 데이터를 쓰려면 보통 writefile(), WriteRecord() 두개의 메서드를 사용합니다.

  • writefile(MODE STRING, ARRAY)
!MyFile = OBJECT FILE(|D:\zz.txt|)
!result = object array()
!result.append('This is a test line1.')
!result.append('This is a test line2.')
!result.append('This is a test line3.')
!MyFile.writefile(|overwrite|, !result)

writefile을 이용해 Array의 데이터를 file에 삽입합니다.

  • `WriteRecord(STRING)` 메서드는 파일에 문자열을 한 줄씩 씁니다.
!MyFile = OBJECT FILE(|D:\zz.txt|)
!MyFile.Open('overwrite')
!MyFile.WriteRecord('This is a test line1.')
!MyFile.WriteRecord('This is a test line2.')
!MyFile.WriteRecord('This is a test line3.')

!MyFile.Close()

파일이 반드시 Open 상태여야 하며 READ 모드이면 안됩니다 writefile 과는 다르게 .close() 되기 전까지 한줄씩 호출될때마다 텍스트에 작성됩니다.

*TEST해보니 한줄씩 적힌다기 보단 200~300개 호출되면 한번에 작성되는 것 같습니다.


6. 파일 작업 관련 기타 메서드

  • 파일 모드 확인:
!MODE = !MyFile.AccessMode()
  • `AccessMode()` 메서드는 파일의 현재 접근 모드를 반환합니다. 반환값은 `'CLOSED'`, `'READ'`, `'WRITE'`, `'OVERWRITE'`, `'APPEND'` 등이 있습니다.
  • 파일 복사:
!CopyFile = !MyFile.Copy('C:\TEST\list_COPY.txt')
  • `Copy(STRING)` 메서드는 파일을 지정된 위치로 복사합니다.
  • 파일 삭제:
!MyFile.DeleteFile()
  • `DeleteFile()` 메서드는 파일을 삭제합니다.
  • 파일 존재 여부 확인:
Q VAR !MyFile.Exists()
  • `Exists()` 메서드는 파일이 존재하는지 여부를 확인하여, 존재하면 `TRUE`를 반환합니다.
  • 디렉토리 확인:
!Dir = !MyFile.Directory()
  • `Directory()` 메서드는 파일이 속한 디렉토리를 반환합니다.
  • 마지막 수정 날짜 및 시간 확인:
!Datetime = !MyFile.DTM()
  • `DTM()` 메서드는 파일의 마지막 수정 날짜와 시간을 반환합니다.
  • 파일 이름 확인:
!filename = !MyFile.Entry()
  • `Entry()` 메서드는 파일 이름을 반환합니다.
  • 파일 전체 경로 확인:
!FullPath = !MyFile.FullName()
  • `FullName()` 메서드는 파일의 전체 경로를 반환합니다.
  • 파일 열림 여부 확인:
!IsOpen = !MyFile.IsOpen()
  • `IsOpen()` 메서드는 파일이 열려 있는지 여부를 반환합니다.
  • 파일 이동:
!MovedFile = !MyFile.Move('c:\users\bob\moved_list.txt')
  • `Move(STRING)` 메서드는 파일을 지정된 위치로 이동하며, 이동된 파일의 새로운 Object File를 반환합니다.
  • 파일 경로 및 이름 확인:
!Name = !MyFile.Name()
  • `Name()` 메서드는 파일의 경로와 이름을 반환합니다.
  • 파일 크기 확인:
!FileSize = !MyFile.Size()
  • `Size()` 메서드는 파일의 크기를 바이트 단위로 반환합니다.
  • 파일 타입 확인:
!Type = !MyFile.Type()
  • `Type()` 메서드는 해당 객체가 파일인지 디렉토리인지에 대한 정보를 문자열로 반환합니다.