Code example: VST with duplicate array values removed
The LabelStatus_Code field, with a coded value domain, is used to store the abbreviation option chosen for each annotation feature. This field must have a data type of Text with a length of at least 2,000 characters.
This code example shows the duplicate array values removed in case you are exceeding the 2,000-character limit for the LabelStatus_Code field.
Function Generate([OBJECTID], [OBJECTID_arr], [LABELSTATUS_CODE], [LABELSTATUS_CODE_arr], [PRIMARYNAVAID_CODE], [PRIMARYNAVAID_CODE_arr], [SystemSubtype], [SystemSubtype_arr], [Ident_Txt], [Ident_Txt_arr], [Frequency_Val], [Frequency_Val_arr], [Channel_Txt], [Channel_Txt_arr], [Voice_Code], [Voice_Code_arr], [ComponentSubtype], [ComponentSubtype_arr], [Name_Txt], [Name_Txt_arr], [LAT_TXT], [LAT_TXT_arr], [LONG_TXT], [LONG_TXT_arr], [ROLEFIX_CODE], [ROLEFIX_CODE_arr]) VariableArray = Array([LABELSTATUS_CODE_arr], [PRIMARYNAVAID_CODE_arr], [SystemSubtype_arr], [Ident_Txt_arr], [Frequency_Val_arr],[Channel_Txt_arr], [Voice_Code_arr], [ComponentSubtype_arr], [Name_Txt_arr], [LAT_TXT_arr], [LONG_TXT_arr], [ROLEFIX_CODE_arr]) k = 0 'Number of arrays lVariableCount = UBound(VariableArray) + 1 'Number of records in each array firstArray = VariableArray(0) lRecordsCount = UBound(firstArray ) + 1 do while k < lRecordsCount strOutput = firstArray(k) i = 1 do while i < lVariableCount strOutput = strOutput & "<>" tempArray = VariableArray(i) strOutput = strOutput & tempArray(k) i = i + 1 loop 'If we already have a string with the same record combination then don't add 'it again if (inStr(strUniqueRecords, strOutput) <> 0) then 'Do Nothing else 'Add this to record array if k > 0 then strRecordsToInclude = strRecordsToInclude & "," & k strUniqueRecords = strUniqueRecords & strOutput & "||" else strRecordsToInclude = k strUniqueRecords = strOutput & "||" end if end if k = k + 1 loop RecordsToIncludeArray = Split(strRecordsToInclude, ",") k = 0 i = 0 do while k < UBound(VariableArray) + 1 tempArray = VariableArray(k) i = 1 strOutputText = strOutputText & tempArray(0) do while i < ubound(RecordsToIncludeArray) + 1 strOutputText = strOutputText & "<>" recordId = RecordsToIncludeArray(i) strOutputText = strOutputText & tempArray(recordId) i = i + 1 loop strOutputText = strOutputText & "||" k = k + 1 loop Generate = strOutputText End Function
7/31/2012