我使用VB .Net访问eBay API并将所有完成的订单存储在数据库中。然后将该数据库送入专有运输系统,该运输系统无法处理大于20个字符的订单号。 eBay返回的订单号码太长,如230407279314-680141236013
。订单号总是12个连字符和12个数字。我需要做的是将这个结果(结果可以是字母数字)转换成一个更短,唯一的订单关键字,与真正的订单ID一起存储在我的数据库中(这样可以通过运输软件而不是实际的订单编号)。 20个字符限制的原因是所使用的条码算法。有没有办法在VB .Net 2010中实现这一点?这个数字可以是任何唯一的,只要它不存在(即使一个好的uniqueid函数可以工作,但我将不得不查询数据库以确保它不被占用)从另一个太长的唯一数值创建一个固定长度的唯一字符串
2
A
回答
0
您可以将它存储为一个唯一的十六进制数字 - 说你已经将ebay代码存储为两个字符串:lefstr' - 'rightstring。所以在这种情况下,leftstring ='230407279314'和rightstring ='680141236013'。
一旦你把它们放到一个字符串和检索从它的整数值,你应该能够将其存储为十六进制的字符串:id.toString(“X”)
的ID将不超过20个十六进制字符长:)
5
您实际上可以将该数字转换为20个字符的字符串。您可以将数字分成六位数字。由于每个那些只需要20位存储,然后你可以代表他们为五张十六进制数:
230407 -> 38407
279314 -> 44312
680141 -> A60CD
236013 -> 399ED
这样会给20个字符的字符串:
3840744312A60CD399ED
像这样做:
Dim code As String = _
Int32.Parse(orderNumber.Substring(0, 5)).ToString("x5") + _
Int32.Parse(orderNumber.Substring(5, 5)).ToString("x5") + _
Int32.Parse(orderNumber.Substring(11, 5)).ToString("x5") + _
Int32.Parse(orderNumber.Substring(16, 5)).ToString("x5")
+0
只要他使用支持字母表字符的条形码,他就可以使用十六进制 – 2012-02-13 19:01:28
相关问题
- 1. 固定长度的唯一字母数字字符串
- 2. 如何从长度为28的两个唯一字符串中生成长度为28的唯一字符串?
- 3. 为每个唯一的长字符串创建一个简短的唯一字符串
- 4. MySQL/MariaDB固定长度的唯一BLOB
- 5. 如何返回一个固定长度的字符串一个字符串的?
- 6. 组和计数唯一字符串值和长度
- 7. 生成给定一个字符串在Java中的伪唯一长值
- 8. 当唯一字符串位于2个不同位置时,从较长字符串获取唯一字符串
- 9. 创建一个唯一的字母数字10个字符的字符串
- 10. 根据字符串创建一个唯一的整数
- 11. 创建一个唯一的字符串用于保存数据
- 12. 从其他两个字符串创建唯一的字符串(一个是独特的,另一种是不)
- 13. 为唯一的字符串种子生成唯一的长整数
- 14. 计算字符串中最小长度的唯一字
- 15. 确定会话ID字符串长度以确保唯一性
- 16. 一个字符串的字节长度
- 17. 生成一个字符串的随机固定长度排列
- 18. 如何操纵一个字符串等于另一个字符串的长度?
- 19. 为什么SecureRandom.uuid创建一个唯一的字符串?
- 20. 找到N个唯一的字符最长子串
- 21. 找到一个字符串的长度
- 22. 返回一个字符串的长度
- 23. 您可以从n长度的唯一字符列表中制作多少个m长度的唯一字符串
- 24. 复制数据的固定长度从标准:: istream的一个字符串
- 25. 从JavaScript中的字符串数组创建一个唯一的ID?
- 26. 如何根据另一个字符串的未知长度创建一个新的字符串?
- 27. 如何从一个字符串向量中创建一组唯一的名称?
- 28. 从一个数组中获取特定长度的字符串
- 29. 生成从2个关键字一个唯一的字符串
- 30. 从另一个字符串中创建一个字符串?
我的Quickbooks采购订单号码与我们试图合并的另一个系统的采购订单号码相比太短,我也遇到同样的问题。我们最终使用备注字段来存储该号码,因为链接到旧的采购订单编号并不重要(根据会计部门) – 2012-02-13 18:30:54
您的表是否有ident列?只需使用前导零即可。 – cadrell0 2012-02-13 18:39:06