Автор Тема: Free pascal String2Hex  (Прочетена 1391 пъти)

runtime

  • Напреднали
  • *****
  • Публикации: 807
  • Distribution: Ubuntu 14.04
  • Window Manager: Unity
  • LZ1DOT
    • Профил
    • WWW
Free pascal String2Hex
« -: Sep 12, 2012, 21:45 »
Здравейте,
  от 1 час се мъча да конверирам стринг във вид 'CEE300002D' във стринг с вид #$CE#$E3#$00#$00#$2D
Даже не знам от стринг към хекс ли е или квото е там ;D То даже си е хекс към стринг ама както и да е де :)

Някой може ли да се притече на помощ?
Активен

runtime

  • Напреднали
  • *****
  • Публикации: 807
  • Distribution: Ubuntu 14.04
  • Window Manager: Unity
  • LZ1DOT
    • Профил
    • WWW
Re: Free pascal String2Hex
« Отговор #1 -: Sep 12, 2012, 22:16 »
Опа намерих си най сетне квото търсих:

http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=1149&lngWId=7

Може да ходи в коша по ваша преценка :)
Активен

remotex

  • Напреднали
  • *****
  • Публикации: 344
    • Профил
Re: Free pascal String2Hex
« Отговор #2 -: Sep 13, 2012, 16:43 »
Колега, не бързай чак толкова... няколко бързи въпроса, ако може
1. Защо ти е да конвертираш очевидно двоични данни към 16тичен стринг само за да ги конвертираш после пак към стринг но бинарен?! Аз лично бих конвертирал направо от число към бинарен стринг като трябва да се внимава и за:
2. Проблеми с обратната конверсия - не виждам формата да поддържа т.нар. endiannes т.е. затова хората слагат номера на версиите на протокола или поне трябва да се сериализира в един и същи формат, за съжаление по удобният е на Моторола но повечето ПК ползват интел т.е. съдейки по кода който показа това е за прехвърляне на информация през мрежата и приемащата машина няма как да знае какъв е формата на предаващата та да не стане напр. подаваш CEE300002D а се получава 2D 00 00 E3 CE
а и нечетния бр. байтове ме подсети и за:
3. Дадения алгоритъм ще изгърми при подаване на нечетен брой символи напр. CEE302D (винаги ги чете по 2) и накрая
4. Трябва да се внимава от коя страна ще се добави една нула - това е свързано и с 2.
напр. CEE302D -> CEE302D0 или 0CEE302D - ще зависи по кое време се прави и вж. 2.
и по-лесен пример в 10на бр. с-ма е. 10 -> 010 или 100 разлика 10 пъти

П.П. Колкото ми се удава - толкова... а и паскал не съм барал от години.
« Последна редакция: Sep 13, 2012, 16:48 от remotex »
Активен

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
Pascal
Хардуерни и софтуерни проблеми
Beliq 4 1982 Последна публикация Jul 03, 2002, 12:52
от Beliq
Pascal
Общ форум
bobitu 0 973 Последна публикация Apr 27, 2005, 17:55
от bobitu
Borland pascal -трагедията
Общ форум
Kittiee 6 1903 Последна публикация Dec 19, 2006, 20:39
от IvanX
Lazarus (Free Pascal) и база данни
Общ форум
laskov 5 3255 Последна публикация Dec 05, 2012, 12:49
от laskov
Free Pascal blcksock synapse
Общ форум
runtime 1 1297 Последна публикация Jul 19, 2013, 22:27
от runtime