我有一个条形码,我需要从该字符串中提取特定部分。它是一个巨大的标识符代码,它是90个字符长,每个位置都有一个特定的含义,我只需要取90个字符串并拉出一个字符串,字符16-35,35-43和89。
是否有一个VBA功能,我可以使用一次或三次将每个字符串拉出原始字符串?
此外,在每个字符串的内部都有不使用字符的空格,我希望删除那些以保持以下每个字符串更短。
Original String = FE52I FJKD4T52BCYT8L LEN274H9QRR ME01B29BC4GPSI
I need:
String 1 = "T52BCYT8L"
String 2 = "LEN274H9QRR"
String 3 = "S"
如果字符串1和2的长度不同,则此条形码中有占位符。 提前谢谢你的帮助!
答案 0 :(得分:1)
此代码将提取您在帖子中指定的字符串,并且还将删除空格:
uint32_t cStride = multiArray.strides[2].intValue;
uint16_t hStride = multiArray.strides[3].intValue;
uint8_t wStride = multiArray.strides[4].intValue;
for (uint16_t h = 0; h < height; h++) {
for (uint16_t w = 0; w < width; w++) {
uint8_t highestClass = 0;
double highest = -DBL_MAX;
//not sure about the type
double * tempPointer = &pointer[h * hStride + w * wStride];
vDSP_maxviD(tempPointer, cStride, &highest, &highestClass, channels);
// further code
}
}
你得到的输出是:
Sub GET_STRINGS(ByVal ThisBarCode As String)
Dim STR_A, STR_B, STR_C As String
STR_A = Replace(Mid(ThisBarCode, 16, 20), " ", "")
STR_B = Replace(Mid(ThisBarCode, 35, 10), " ", "")
STR_C = Replace(Mid(ThisBarCode, 89, 1), " ", "")
Debug.Print STR_A
Debug.Print STR_B
Debug.Print STR_C
End Sub
请注意第二个不适合您的示例因为我按照您的说明(拔出字符35-43 ),所以这段代码可能需要稍加更新当你确切知道你想要什么。但这很容易。只需设置Mid Function即可获得多少个字符,而这就是全部。
另外,此代码只有在您的条形码长度为90个字符时才能正常工作。