기계식 패스너에 대한 데이터가 포함 된 텍스트 파일을 읽고 있습니다. 다음 속성을 사용하여 클래스를 통해 객체 패스너를 만들었습니다.
type as string
number as long
master as long
slave as long
패스너 컬렉션을 채우고 싶습니다.
Cfastener as collection
텍스트 파일에서 유형, 번호, 마스터 및 슬레이브는 임의의 순서로 올 수 있으며 항상 모두있는 것은 아닙니다. 이를 처리하기 위해 현재 패스너 (일종의 버퍼)와 기본 "빈"패스너를 정의했습니다.
currentfastener as fastener
initfastener as fastener
with initfastener
.type = "-1"
.number = -1
.master = -1
.slave = -1
end with
내 텍스트 파일을 읽고 이러한 속성 중 하나를 참조하는 키워드를 발견하면 다음에서 값을 테스트합니다 current fastener
.
Do until .atendofstream
line = .readline
Select case line
Case masterkeyword
if currentfastener.master <> -1 then 'We already have a master. This means that we need to save the currentfastener and start a new one.
Cfasteners.add currentfastener
currentfastener = initfastener
else 'master is "empty": we fill the currentfastener.
currentfastener.master= "value read from the text stream"
end if
End Select
Loop
지금까지 기본 빈 인수로 -1
숫자와 "-1"
문자열을 사용 하고 있습니다 . 지금까지는 인수가이 값을 얻을 수 없기 때문에 괜찮 았습니다. 하지만 이제 마스터와 슬레이브에 대한 공간 위치를 추가하고 싶습니다 -1
. 그래서 저는 모든 initfixation
주장을 empty
.
그러나 내가 착각하지 않으면 vba 0
의 empty
값과 값 을 구별 할 수 없으며 이는 문제를 일으킬 것입니다.
0이 아닌 0과 구분할 수 있고 -1이 아닌 기본값을 알고 있습니까?
Empty
Variant
유형 과 함께 사용됩니다 . String
또는 Long
로 설정 한 Empty
다음 빈 상태를 테스트하는 IsEmpty()
것은 작동하지 않습니다.
당신은 할 수 있지만, 데이터를 저장하는 변종을 사용하고 안전하게 사용할 수있는 Empty
빈 /없는 값을 의미하는 값입니다.
VB가 숫자 비교 Empty
를 0
위해 캐스팅 하는 것이 맞습니다 . 예를 들면 :
Dim v As Variant
Debug.Print (v = 0) ' => True
그러나이 VarType()
함수를 사용하여 변수에 Empty
값 이 있는지 테스트 할 수 있습니다 .
Dim v As Variant
Debug.Print VarType(v) = vbEmpty ' => True (empty/uninitialized)
v = 0
Debug.Print VarType(v) = vbEmpty ' => False
v = Empty
Debug.Print VarType(v) = vbEmpty ' => True (empty)
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다