Я использую VB .Net для доступа к API eBay и сохранения всех завершенных заказов в базе данных. Затем эта база данных подается в проприетарную систему доставки, которая не может обрабатывать номер заказа, превышающий 20 символов. eBay возвращает номер заказа, например 230407279314-680141236013
, который слишком длинный. Номер заказа всегда содержит 12 цифр дефис и еще 12 номеров. Что мне нужно сделать, это превратить это (результат может быть альфа-числовым) в более короткий, уникальный ключ заказа, который будет храниться в моей базе данных вместе с истинным orderId (так что на это может ссылаться программное обеспечение для доставки вместо фактического номера заказа). Причиной 20-символьного ограничения является используемый алгоритм штрих-кода. Есть ли способ достичь этого в VB .Net 2010? Это число может быть чем-то уникальным, если оно уже не существует (даже хорошая функция uniqueid будет работать, но мне нужно будет запросить базу данных, чтобы убедиться, что она не была сделана)Создайте уникальную строку фиксированной длины из другого уникального числового значения, которое слишком велико.
ответ
Вы можете сохранить его как одно уникальное шестнадцатеричное число - скажем, вы сохранили код ebay как две строки: lefstr '-' rightstring. Итак, в этом случае leftstring = '230407279314' и rightstring = '680141236013'.
, как только вы поместите их в одну строку и извлекаться целое значение от него вы должны быть в состоянии сохранить его в виде строки в шестнадцатеричном: id.toString («х»)
идентификатор будет не более 20 шестнадцатеричных символов:
Фактически вы можете превратить это число в строку с 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")
Он мог использовать шестнадцатеричный, пока он использует штрих-код, который поддерживает алфавитный символ –
- 1. Присвоить строку переменной длины строке фиксированной длины
- 2. Шифровать и расшифровать строку до фиксированной длины
- 3. Форматирование числового поля до фиксированной длины в отчетах о кристаллах
- 4. Целое число слишком велико
- 5. Содержимое UIPopoverController слишком велико
- 6. Содержимое эмулятора слишком велико
- 7. Создать строку фиксированной длины в C#
- 8. Как объявить строку фиксированной длины в VB.NET?
- 9. Разделить строку JavaScript на фигуры фиксированной длины
- 10. Как сохранить строку фиксированной длины в c
- 11. Перестановки фиксированной длины строки
- 12. Создайте уникальную строку, не последовательную буквенно-цифру длиной 6
- 13. Получение маркера фиксированной длины
- 14. Создайте раскрывающееся меню на основе числового значения
- 15. Создайте список случайных строк фиксированной длины в python
- 16. JSON Создайте уникальную ссылку
- 17. копирование фиксированной длины данных из станда :: IStream в строку
- 18. Извлечь строку из текста фиксированной длины по ключевому слову
- 19. Как сохранить и прочитать строку из массива байтов фиксированной длины?
- 20. Распространение PyInstaller/py2exe слишком велико
- 21. Преобразовать буквенно-цифровое значение для уникального числового значения в SQL
- 22. Преобразование числового значения в строку в Freemarker
- 23. ColorTranslator.FromOle (0x8000000f) число слишком велико
- 24. Расстояние между картой слишком велико.
- 25. Изображение слишком велико для jumbotron
- 26. RabbitMQ Использование памяти слишком велико
- 27. Play Время компиляции слишком велико
- 28. Захваченное разрешение изображения слишком велико
- 29. Поле EditText слишком велико или перезаписано
- 30. Поиск файлов фиксированной длины
У меня была такая же проблема с номерами Quickbooks PO, которые были слишком короткими по сравнению с номерами телефонов другой системы, которые мы пытались объединить. Мы закончили использование полей Memo для хранения этого номера, так как было не так важно сделать ссылку на старый номер PO (согласно отделу бухгалтерии) –
Имеется ли в вашей таблице столбец идентификатора? Просто используйте это с ведущими нулями. – cadrell0