1 / 20

12 장 파일처리

12 장 파일처리. 파일 시스템 컨트롤. 파일 시스템과 사용자간의 인터페이스를 형성하기 위한 컨트롤 종류. 드라이브 리스트박스. 파일 리스트박스. 디렉토리 리스트박스. 드라이브 리스트박스. 사용가능한 드라이브 목록을 표시. 디렉토리 리스트박스. 현재 드라이브에 대한 디렉토리 정보를 표시. 파일 리스트박스. 현재 드라이브와 폴더에 있는 파일정보를 표시 Pattern 속성 파일을 탐색하는 필터를 제공 예 : File1.Pattern = “ *.EXE ”

uri
Télécharger la présentation

12 장 파일처리

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 12장 파일처리

  2. 파일 시스템 컨트롤 • 파일 시스템과 사용자간의 인터페이스를 형성하기 위한 컨트롤 • 종류 드라이브 리스트박스 파일 리스트박스 디렉토리 리스트박스

  3. 드라이브 리스트박스 • 사용가능한 드라이브 목록을 표시

  4. 디렉토리 리스트박스 • 현재 드라이브에 대한 디렉토리 정보를 표시

  5. 파일 리스트박스 • 현재 드라이브와 폴더에 있는 파일정보를 표시 • Pattern 속성 • 파일을 탐색하는 필터를 제공 • 예: • File1.Pattern = “*.EXE” • File1.Pattern = “*.bmp;*.ico;*.wmf” • 파일 속성과 관련된 것

  6. DriveListBox(연결)DirListBox • 각 컨트롤의 계층적인 연동을 위한 정보 필요 • DriveListBox  DirListBox  FileListBox

  7. DirListBox (연결) FileListBox

  8. 파일의 선택 • FileListBox의 FileName 속성 • 선택된 파일의 이름을 설정하는 속성 • 마우스 클릭을 통해 파일을 선택하면 해당 파일의 이름으로 설정됨 • 프로그램 코드로 설정 • filFinder.FileName = “c:\dos\xcopy.exe” • filFinder.FileName  “xcopy.exe” • filFinder.Path  “c:\dos”

  9. 파일 접근 방법 • 순차파일 • 연속적인 데이터를 하나씩 순차적으로 접근하는 파일 형식 • 랜덤파일 • 데이터가 있는 위치를 직접 접근하여 읽거나 쓸 수 있는 파일 형식 • 이진 파일 • 바이트 단위로 입출력을 수행하는 파일 형식

  10. 파일 열기, 읽기, 닫기 (1) • 파일 열기 • Open pathname For Input As #filenumber • filenumber : 1 ~ 511, 파일 참조번호 • 예: Open “C:\VB\VB.TXT” For Input As #1 Open “VB.TXT” For Input As #1 Open App.Path & “test.txt” For Input As #1 • FreeFile 함수 • 이용가능한 파일번호를 자동적으로 반환 Dim iFileNum As Integer iFileNum = FreeFile Open “Sample.txt” For Input As #iFileNum • 파일 닫기 • Close #filenumber • Filenumber가 생략되면 오픈된 모든 파일을 닫는다

  11. 파일 열기, 읽기, 닫기 (2) • 파일 읽기 • LOF • Length of File, 파일의 크기를 바이트 단위로 반환 • FileSize = LOF ( 파일번호 ) • EOF • End of File, 파일의 끝에 도달하면 True 반환 • EOF ( 파일번호 ) Do while Not EOF(1) …… Loop Do Until EOF(1) …… Loop

  12. 파일 열기, 읽기, 닫기 (3) • 순차파일을 읽기 위한 명령어 • Input (읽을 문자수, #파일번호) • LastName = Input (10, #1) • 10개의 문자를 스트링 변수 LastName으로 읽어들임 • FileLen = LOF(1) ReadBuf = Input (FileLen, #1) • Input # • 파일로부터 스트링/수치를 읽어 변수에 저장 • Input #1, Name, Score, Grade • Line Input # • 한번에 한 줄씩 데이터를 읽는다 • 줄바뀜문자를 만날때까지 해당 라인의 모든 문자를 읽음 • Line Input #1, OneLine

  13. 파일 쓰기 • 형식 • Open “경로명”For [Input OutputAppend] As #파일번호 • 파일 쓰기를 위해서는 Output 또는 Append 선택 • 순차파일을 쓰는 명령 • Print # • Print #파일번호, [outputlist] • Outputlist : 파일에 쓰게 될 변수/스트링 목록으로서 세미콜론이나 공백을 두어 열거 Dim strVar As String …… strVar = “one two three four” Print #1, strVar ……

  14. 랜덤 파일 및 이진 파일 • 파일의 접근 모드 • 순차(sequential) • 파일의 시작지점에서 파일의 끝까지 차례대로 접근 • 랜덤(random) • 파일 내의 임의의 위치를 직접 접근 • 레코드 단위로 처리 • 파일 오픈 시 : For Random문 사용 • 이진(binary) • 이진수 형태로 저장, 특정 바이트로 직접 접근 • 파일 오픈 시 : For Binary문 사용 Dim floatNum As Double Dim intNum As Integer floatNum = 12345.67 intNum = 1234 … Print #fileNum, intNum; “:”; floatNum Print #fileNum, “This is a sample text”

  15. 랜덤 접근 파일 (1) • 레코드 • 서로 논리적으로 관련된 이질적인 자료형을 갖는 데이터를 하나의 변수로 구성하는 데이터 집합체 학생

  16. 랜덤 접근 파일 (1) • 정의 • 변수 선언 • Dim MemOne As Member • 필드 접근 • MemOne.Age = 34 Type 레코드명 필드명1 As 자료형1 …… 필드명n As 자료형n End Type Type Member Name As String * 15 Phone As String * 15 Age As Integer Addr As String * 50 End Type 레코드의 크기를 고정시키기 위해서

  17. 레코드 크기 결정 RecSize = Len (MemOne) 랜덤 접근 파일 (2) • 파일 열기 • 레코드의 크기를 지정해야 함 • Open “member.dat”For Random as #fileNumLen =RecSize • 읽기,쓰기 • Put #파일번호, 위치, 레코드변수명 • Put #fileNum, 1, MemOne • Put #fileNum, 3, MemOne • Put #fileNum, , MemOne • 직전에 쓰여진 레코드의 바로 뒤에 씀 • Get #파일번호, 위치, 레코드변수명 • Get #fileNum, 2, ReadIn • Get #fileNum, , ReadIn • 직전에 읽은 바로 다음 레코드를 읽음

  18. 이진 접근 파일 • 랜덤 파일의 처리와 거의 유사 • 레코드 단위가 아니라, 바이트 단위로 접근 • 파일 열기 : For Binary문 사용 • Put, Get 문 사용 • Get #fileNum, 20, MyVar • 20번째 바이트를 MyVar로 읽어 옴 Open 파일명 For Binary As #파일번호 Get #파일번호, 위치, 변수명 Put #파일번호, 위치, 변수명 Close #파일번호

  19. [실습]

  20. [실습]

More Related