2009-04-16 2 views
7

Option Compare Text은 모듈 수준에서 설정되어있는 경우VB/VBA에서는 StrComp 또는 어떤 차이가

If strVal1 = strVal2 Then 

를 사용하는 것이 아니라, 어떤 경우

If StrComp(strVal1, strVal2, vbTextCompare) = 0 Then 

를 사용의 이점은 무엇인가가 = ?

StrComp가 null 시나리오와 < 시나리오를 처리한다는 것을 알고 있지만 strVal1 및 strVal2의 null이 아닌 올바른 문자열이 할당 된 상황에만 관심이 있습니다.

답변

1

가 차이 없습니다 (하지만 당신은 다른 사람이 삭제 경우에서는 StrComp를 사용한다), 어떤 차이가있다 ?

아니요. 단순히 모듈 수준의 전략을 제공하지 않고보다 세분화 된 제어 기능 만 제공합니다. 그러나 의 경우과 같은 약속을하면 x = y 옵션으로 이동하십시오. 적은 코드는 항상 더 나은 코드입니다.

+1

적은 코드가 항상 * 더 나은 코드입니까? [코드 골프] (http://codegolf.stackexchange.com/) –

+0

@MarkCh "... 다른 모든 일은 평등합니다."물론. –

+0

vbBinaryCompare를 사용하는 StrComp가 훨씬 빠릅니다. '할 수있을 때마다 이진 비교를 사용하십시오. 이것은 VB의 기본값입니다. 텍스트 비교가 훨씬 느립니다. "http://www.aivosto.com/vbtips/stringopt.html – lpfx

2

StrComp는 문자열 (문화 정보 포함)을 비교하므로 UpperCase와 LowerCase는 돌보지 않습니다 ... (Hello는 hello와 동일하므로). =의 경우에는 2 진 비교를 사용하는 것과 같이 다른 유형이 있습니다. 옵션 텍스트를 비교 모듈 레벨에있는 경우 Option Compare Text은 모듈 수준에서 설정되어있는 경우 , ...

관련 문제