Цитата:
Сообщение от VORON
CharObjID:=ReadD(18);
ты приравниваеш что к чему? ИД ЧАРА надо хранить в СТРИНГЕ! для того чтобы его можно было напрямую без преобразований использовать.. т.е. тебе надо запомнить 4 символа 18, 19, 20, 21 байты... а ты используя функцию READD(xx) - преобразуеш СТРИНГ- в число интигер... само собой ето число будет от первоначального стринга отличаеш.. ето равносильно функции STRTOINT('stroka'),.
вопщем если ты меня понял то :
приведи CharObjID к типу STRING..
а строку CharObjID:=ReadD(18); приведи к виду:
CharObjID:=pck[18]+pck[19]+pck[20]+pck[21];
а в твоем варианте ето работало так:
CharObjID:=StrToInt(pck[18]+pck[19]+pck[20]+pck[21]);
|
не ожидал от тя такого бреда...
ReadD (который копирует область памяти размером 4 байта из строки в числовую переменную) не имеет никакого отношения к StrToInt который преобразует строку в число, StrToInt выполняется во многие разы медленнее чем ReadD, так что не путай человека
st01en, не совсем понял зачем те делать чтоб тока при первом пакете юзеринфо считывался ИД, быстродействие от того что ИД будет считываться каждый раз почти не пострадает да и на всяких проверках первый ли это раз быстродействие пострадает даже немного сильнее, но всёравно кстати незначительно)