programing

텍스트 파일에서 줄 읽기, 처음 두 줄 건너뛰기

megabox 2023. 8. 27. 09:02
반응형

텍스트 파일에서 줄 읽기, 처음 두 줄 건너뛰기

마이크로소프트 오피스 워드 2003에 있는 이 매크로 코드는 텍스트 파일의 줄을 읽습니다.각 행은 코드에서 나중에 사용해야 하는 문자열 값을 나타냅니다.

그러나 텍스트 파일의 처음 두 줄에는 필요 없는 내용이 포함되어 있습니다.코드가 두 개의 첫 줄을 건너뛸 수 있도록 코드를 수정하려면 어떻게 해야 합니까?워드의 VBA 편집기 내의 "인텔리센스"는 정말 형편없습니다.

어쨌든, 코드는 이렇게 보입니다.

Dim sFileName As String
Dim iFileNum As Integer
Dim sBuf As String
Dim Fields as String

sFileName = "c:\fields.ini"
''//Does the file exist?
If Len(Dir$(sFileName)) = 0 Then
    MsgBox ("Cannot find fields.ini")
End If

iFileNum = FreeFile()
Open sFileName For Input As iFileNum
Do While Not EOF(iFileNum)
    Line Input #iFileNum, Fields

    MsgBox (Fields)

그리고 이 코드는 현재 저에게 모든 라인을 제공합니다. 그리고 저는 처음 두 개를 원하지 않습니다.

그 전체Open <file path> For Input As <some number>1990년대의 일입니다.또한 속도가 느리고 오류가 발생하기 쉽습니다.

VBA 편집기에서 도구 메뉴에서 참조를 선택하고 거의 모든 XP 또는 Vista 시스템에서 사용할 수 있는 "Microsoft 스크립팅 런타임"(scrrun.dll)을 찾습니다.그것이 거기에 있으니, 그것을 선택하세요.이제 좀 더 강력한 솔루션에 액세스할 수 있습니다.

With New Scripting.FileSystemObject
    With .OpenTextFile(sFilename, ForReading)

        If Not .AtEndOfStream Then .SkipLine
        If Not .AtEndOfStream Then .SkipLine

        Do Until .AtEndOfStream
            DoSomethingImportantTo .ReadLine
        Loop

    End With
End With

임의 액세스를 사용할 수 있습니다.

Open "C:\docs\TESTFILE.txt" For Random As #1 

    Position = 3    ' Define record number.
    Get #1, Position, ARecord    ' Read record.

Close #1
Open sFileName For Input As iFileNum

Dim LineNum As Long
LineNum = 0

Do While Not EOF(iFileNum)
  LineNum = LineNum + 1
  Line Input #iFileNum, Fields
  If LineNum > 2 Then
    DoStuffWith(Fields)
  End If
Loop

제가 너무 단순화한 것이 아닐까요?

다음 코드를 추가하기만 하면 됩니다.

Open sFileName For Input as iFileNum
Line Input #iFileNum, dummy1
Line Input #iFileNum, dummy2
........

순다르

Dim sFileName As String
Dim iFileNum As Integer
Dim sBuf As String
Dim Fields as String
Dim TempStr as String

sFileName = "c:\fields.ini"
''//Does the file exist?
If Len(Dir$(sFileName)) = 0 Then
    MsgBox ("Cannot find fields.ini")
End If

iFileNum = FreeFile()
Open sFileName For Input As iFileNum

''//This part skips the first two lines
if not(EOF(iFileNum)) Then Line Input #iFilenum, TempStr
if not(EOF(iFileNum)) Then Line Input #iFilenum, TempStr

Do While Not EOF(iFileNum)
    Line Input #iFileNum, Fields

    MsgBox (Fields)
Loop

언급URL : https://stackoverflow.com/questions/938796/read-lines-from-a-text-file-but-skip-the-first-two-lines

반응형