0
나는 txt 파일에서 문자열을 읽고 이것을 다시 변수에 전달하는 함수를 가지고 있습니다. 변수에 나는 case
블록이 있습니다. case
조건과 변수 값이 동일한 문자열이 모두 포함되어 있어도 작동하지 않습니다. 여기 텍스트 파일에서 줄 바꿈을 제거하십시오.
vFile = LCase(Trim(Replace(readFile(DirFile & match.Value & ".txt"), "\r", "")))
vFile = Replace(vFile, " ", "")
vFile = Replace(vFile, vbLf, "")
Debug.Print ("Value in variable fromFile: " & fromFile)
Select Case vFile
Case "abc":
Debug.Print ("ABC!")
Case "efg":
Debug.Print ("EFG!")
Case Else:
Debug.Print ("Error: " & vFile)
End Select
이 내 "직접 실행 창"을 인쇄하고 다음
Value in variable vFile: abc
Error: abc
"abc"블록과 일치하는 "abc"인 변수의 내용에도 불구하고 case else
블록이 실행 중입니다. 왜 이것이 제대로 작동하지 않습니까?
편집 :
이 두 공백 줄 바꿈에 '
전에도있다 (인쇄되는 것입니다 수정이 상수를 사용하는 것입니다
Value in variable vFile: 'abc
'
Error: 'abc
'
최종 인쇄 문은 변수에 뒤 공백이 있는지 또는 예기치 않은 다른 문자가 있는지 알려주지 않습니다. 일반적으로 내 de bugging은'Debug.Print ("Error : '"& vFile &' " ')'스타일로 출력하여 변수에 무엇이 있는지 밝혀줍니다. – AdrianHHH
아하! 'Trim'을 사용하여 이것을 분류했을 것이라고 생각했지만, 캐리지 리턴이 믹스 또는 개행 문자에있는 것 같습니다. 나는 인쇄되고있는 것을 반영하기 위해 나의 질문을 편집했다. –
자르기는 공백과 탭만 제거합니다. 하지만 바꾸기 (readFile (..), "\ r", "")를 사용할 수 있습니다. – aquaherd