2014-05-25 2 views
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 
' 
+0

최종 인쇄 문은 변수에 뒤 공백이 있는지 또는 예기치 않은 다른 문자가 있는지 알려주지 않습니다. 일반적으로 내 de bugging은'Debug.Print ("Error : '"& vFile &' " ')'스타일로 출력하여 변수에 무엇이 있는지 밝혀줍니다. – AdrianHHH

+0

아하! 'Trim'을 사용하여 이것을 분류했을 것이라고 생각했지만, 캐리지 리턴이 믹스 또는 개행 문자에있는 것 같습니다. 나는 인쇄되고있는 것을 반영하기 위해 나의 질문을 편집했다. –

+0

자르기는 공백과 탭만 제거합니다. 하지만 바꾸기 (readFile (..), "\ r", "")를 사용할 수 있습니다. – aquaherd

답변

0

:. 반대로 vbCrLfReplace 기능에 \n 또는 \r

관련 문제