[스타일] 문서 처리의 전통과 대상

4445 단어
저자: amnesiac 최초: 공식 포럼의 중국어 버전
주: AutoHotkey에 대해 초보자들이 거의 곤혹스러워하는 점은 선택할 수 있는 스타일이 많다는 것이다. 초보자들은 문법이 어지럽다고 느끼고 익숙한 사람들은 유연하고 다양하다고 생각하는데 이것은 좋은 것은 나쁜 생각이다.그러나 이런 현상의 발생에는 일정한 역사적 원인이 있기 때문에 앞으로 더욱 상세하게 설명할 수 있을 것이다.
파일 시스템과 상호작용하는 것은 스크립트에서 가장 흔히 볼 수 있는 조작 중의 하나이다.본고는 문서 처리의 측면에서 전통적인 방식과 대상 방식의 차이를 비교하여 전체적으로 그것들에 대해 어느 정도 이해하고 혼란을 피하도록 한다.비교해 보면 두 가지 방식의 차이는 다음과 같다.
4
  • 명령은 비교적 간단하고(일괄 처리된 느낌) 대부분의 수요를 만족시킬 수 있다

  • 4
  • 대상은 더욱 유연하고 더욱 세밀한 통제를 할 수 있으며 잘 사용하고 효율적이다

  • 파일 처리에 대한 일반 명령


    AutoHotkey에서는 주로 작업 파일에 대해 다음 명령(및 함수)을 제공합니다.
    FileAppend: 파일 끝에 컨텐트를 첨부하고 파일이 없으면 먼저 파일을 생성합니다.FileDelete: 파일을 삭제합니다.FileRead/FileReadLine/파일 읽기 순환: 전체 파일이나 한 줄의 내용을 읽거나 파일 헤더부터 한 줄씩 파일의 내용을 가져옵니다.FileExist(): 파일, 폴더의 존재 여부를 판단합니다.파일과 폴더 순환: 파일 시스템에서 지정한 위치의 파일과 폴더를 두루 훑어봅니다.기타 명령: 파일과 관련된 기타 명령.
    먼저 작업에 필요한 대상 파일을 설정합니다.
    strFileName := "C:\Test.txt"
    

    FileAppend


    파일 끝에 컨텐트를 첨부하면 대상 파일이 존재하지 않을 때 파일이 먼저 생성됩니다.
    FileAppend,  。`n, %strFileName%
    

    FileDelete


    파일을 삭제합니다.예를 들면 다음과 같습니다.
    FileDelete, %strFileName%
    

    파일을 덮어쓰려면 먼저 FileDelete를 사용하여 파일을 삭제해야 합니다(일반적으로 덮어쓰는 명령은 없습니다).

    FileRead/FileReadLine/파일 읽기 주기


    FileRead를 사용하여 전체 파일의 내용을 한 번에 읽을 수 있습니다.
    FileRead, strFile, %strFileName%
    

    파일의 몇 줄만 읽으면 FileReadLine을 사용합니다.
    intLineNum := 1 ;  。
    FileReadLine, strRow, %strFileName%, %intLineNum%
    

    파일 컨텐트를 한 줄씩 처리해야 하는 경우 주기(FileReadLine보다 더 효과적):
    strObjectFileName := "C:\Object.txt" ;  。
    Loop, Read, %strFileName%, %strObjectFileName%
    {
      MsgBox,   %A_Index%   %A_LoopReadLine%。
    }
    

    참고: 파일 읽기 주기에만 ALoopReadLine 변수.또한 이 주기에서 텍스트를 쓸 필요가 있을 때는 하나의 인자 (쓴 텍스트) 만 있는 FileAppend 명령을 사용하면 더욱 효율적으로 실행할 수 있습니다.

    FileExist()


    파일, 폴더의 존재 여부를 판단합니다.예를 들면 다음과 같습니다.
    if FileExist(strFileName)
      MsgBox,  。
    

    파일 및 폴더 순환


    Loop을 사용하여 파일 시스템에서 지정된 위치의 파일과 폴더를 반복합니다(위에서 읽은 파일 내용과 다름).
    strObjectDir := "C:\*"
    Loop, %strObjectDir% ;  。
    {
      MsgBox,   %strObjectDir%   %A_Index%   %A_LoopFileName%。
    }
    

    주의: 이 Loop 순환에는 자신만의 변수가 많이 존재하는데, 많은 경우에 유용하다.

    기타 명령


    파일, 폴더를 조작할 때의 주요 명령과 비교적 자주 사용하지 않는 명령이 소개되어 있는데 여기서 다음과 같이 설명한다.
    FileCopy: 파일을 복사합니다.FileCopyDir: 디렉토리를 복사합니다(배치의 xcopy와 유사).FileCreateDir: 디렉토리를 생성합니다.FileMove: 파일을 이동하거나 이름을 바꿉니다.FileMoveDir: 디렉토리를 이동하거나 이름을 바꿉니다.FileRemoveDir: 디렉토리를 삭제합니다.

    소결


    위에서 파일, 폴더 조작의 주요 명령을 소개했는데 그 중에서 읽기, 쓰기 명령은 대부분 텍스트 파일을 조작하지만 일부는 바이너리 파일을 조작할 수 있다.또한 파일 인코딩, 크기, 속성 등과 관련된 명령에 대해서는 설명이 없으니 도움말을 참고하십시오.

    파일 개체


    파일 객체 만들기


    FileOpen() 함수를 사용하려면 다음과 같이 하십시오.
    strFileName := "C:\Test.txt"
    objFile := FileOpen(strFileName, "r", "UTF-8")
    if ObjFile
      MsgBox,   %strFileName%  。
    

    대상을 만든 후, 창설에 성공했는지 여부를 즉시 판단해야 하며, 초보자는 이 점을 무시하기 쉽다.

    작업 파일


    이러한 작업은 파일 핸들을 사용하는 방법이므로 파일 핸들을 호출하려면 먼저 FileOpen()을 통해 파일 핸들을 가져와야 합니다.
    Read: 파일의 현재 포인터 위치에서 문자열을 읽고 포인터를 앞으로 이동합니다.Write: 파일의 현재 포인터 위치에 문자열을 쓰고 포인터를 앞으로 이동합니다.ReadLine: 파일에서 텍스트 행을 읽고 포인터를 앞으로 이동합니다.WriteLine: 파일을 열 때 사용하는 플래그에 따라 문자열 뒤에'n 또는'r'n을 기록합니다.파일 포인터를 앞으로 이동합니다.RawRead: 파일에서 원래 바이너리 데이터를 메모리로 읽습니다.RawWrite: 원래 바이너리 데이터를 파일에 씁니다.AtEOF: 파일 포인터가 파일 끝에 도달했는지 여부를 판단합니다.Close: 파일을 닫고 버퍼의 데이터를 디스크에 쓰고 공유 잠금을 해제합니다.
    위에는 파일 객체에 공통으로 사용되는 메서드 및 속성(AtEOF만 속성)이 있으며, 추가 메서드 및 속성은 도움말을 참조하십시오.

    파일 객체 사용 템플릿

    FileName := "d:\test.txt"
    ObjFile := FileOpen(FileName, "r")
    if !IsObject(ObjFile) ;  。
    {
      MsgBox,   %FileName%  。
      return
    }
    
    Loop ;   While  , 。
    {
      If ObjFile.AtEOF ;  
        break
      Text := ObjFile.ReadLine()
      MsgBox,   %A_Index%  : %Text%
    }
    ObjFile.Close() ;  , 。
    

    이 파일 대상의 사용 템플릿은 무술의 체계와 같아서 필요할 때 적당히 조정하면 자신의 스크립트에 사용하기 편리하다.

    파일 명령과 객체 비교


    명령은 간단하게 설명하지 않지만 위의 내용은 파일 대상의 강대함을 쉽게 알 수 없기 때문에 여기에 요약을 한다. 파일 대상의 강대함은 그의 유연성에 있다. 그 몇 가지 방법을 사용하면 이를 이해할 수 있다. 특히 이진 내용을 처리할 때(이 방면에서 명령의 기능은 매우 제한되어 있다).파일 객체의 효율성은 동일한 파일에 대한 대량의 읽기, 쓰기 작업을 수행할 때 I/O 작업이 많은 양의 파일을 처리하는 데 많은 시간이 소요된다는 것을 잘 알고 있다는 점입니다.
    초보자에게는 명령부터 시작해 기본적으로 수요를 충족시킬 수 있고 (파일 대상이 필요한 강력한 부분은 실제 사용이 상대적으로 적음) 익숙해지면 파일 대상을 적절하게 이해할 수 있다.마지막에 어떤 스타일을 선택할지 개인적인 습관이 되는 경우가 많지만 다른 스타일과는 상관이 없다.

    좋은 웹페이지 즐겨찾기