[스타일] 문서 처리의 전통과 대상
주: 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 작업이 많은 양의 파일을 처리하는 데 많은 시간이 소요된다는 것을 잘 알고 있다는 점입니다.
초보자에게는 명령부터 시작해 기본적으로 수요를 충족시킬 수 있고 (파일 대상이 필요한 강력한 부분은 실제 사용이 상대적으로 적음) 익숙해지면 파일 대상을 적절하게 이해할 수 있다.마지막에 어떤 스타일을 선택할지 개인적인 습관이 되는 경우가 많지만 다른 스타일과는 상관이 없다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.