Программинг Форум для тем связанных с программированием
11.01.2012, 04:36
#11
Рыцарь
Регистрация: 13.10.2009
Сообщений: 665
Сказал Спасибо: 38
Имеет 172 спасибок в 108 сообщенях
Цитата:
Сообщение от
supernewbie
кстати додумался как круче делать - string(pchar(@pck[байт с которого идёт строка]));
кто-нить видит подводные камни?
widestring(pwidechar(@pck[байт с которого идёт строка]));
или
string(PWideToString(pwidechar(@pck[байт с которого идёт строка])));
хотя я делал так
widestring(pwidechar(Pointer(DWORD(ppck)+[байт с которого идёт строка]))));
string(PWideToString(pwidechar(Pointer(DWORD(ppck) +[байт с которого идёт строка]))));
где ppck это адрес пакета
Цитата:
function PWideToString(pw: PWideChar): string;
var
p: PChar;
iLen: integer;
begin
iLen := lstrlenw(pw) + 1;
GetMem(p, iLen);
WideCharToMultiByte(CP_ACP, 0, pw, iLen, p, iLen * 2, nil, nil);
Result := p;
FreeMem(p, iLen);
end;
__________________
каждый раз, когда ты пишешь int i вместо short i, сотни пользователей вынуждены докупать планку памяти
служба поддержки 4gay - ICQ 642274822
Последний раз редактировалось Morfik, 11.01.2012 в 04:44 .
11.01.2012, 04:42
#12
Местный
Регистрация: 23.09.2009
Сообщений: 1,232
Сказал Спасибо: 119
Имеет 172 спасибок в 134 сообщенях
дык щас же string=widestring и pchar=pwidechar
__________________
Н а ч а л о .
11.01.2012, 04:45
#13
Рыцарь
Регистрация: 13.10.2009
Сообщений: 665
Сказал Спасибо: 38
Имеет 172 спасибок в 108 сообщенях
supernewbie , ну а это смотря а какой делфе говорить, я на 7й доси
__________________
каждый раз, когда ты пишешь int i вместо short i, сотни пользователей вынуждены докупать планку памяти
служба поддержки 4gay - ICQ 642274822
11.01.2012, 04:46
#14
Местный
Регистрация: 23.09.2009
Сообщений: 1,232
Сказал Спасибо: 119
Имеет 172 спасибок в 134 сообщенях
Morfik , фуууу, срочно перебегай на xe2, там всякие чёткие списочки добавились, типо TList'а, который умеет хранить любой тип, и такая же хэш таблица
ах да, самое главное та, можно аллочить 8 гб памяти!!111рас
__________________
Н а ч а л о .
11.01.2012, 04:51
#15
Рыцарь
Регистрация: 07.03.2009
Сообщений: 9,139
Сказал Спасибо: 70
Имеет 2,820 спасибок в 1,735 сообщенях
сам такой.
Цитата:
типо TList'а, который умеет хранить любой тип
он поинтеры хранить всегда умел.
Цитата:
можно аллочить 8 гб памяти
эт только тебе надо.
__________________
L2Ext - project closed.
11.01.2012, 04:52
#16
Местный
Регистрация: 23.09.2009
Сообщений: 1,232
Сказал Спасибо: 119
Имеет 172 спасибок в 134 сообщенях
alexteam , а хеш таблица?
TЧетоТам<string,integer> - ахрененно же
__________________
Н а ч а л о .
11.01.2012, 11:44
#17
Местный
Регистрация: 10.08.2010
Сообщений: 634
Сказал Спасибо: 22
Имеет 95 спасибок в 70 сообщенях
Цитата:
Сообщение от
supernewbie
кстати додумался как круче делать - string(pchar(@pck[байт с которого идёт строка]));
кто-нить видит подводные камни?
да. для делфи7 это будит тока первый символ ибо пчар это пансичар.
__________________
читернуть бы ништяг
11.01.2012, 13:49
#18
Местный
Регистрация: 27.10.2011
Адрес: Харьков
Сообщений: 106
Сказал Спасибо: 24
Имеет 11 спасибок в 7 сообщенях
у меня почему-то работает только такая конструкция:
Код:
char buf[1024];
for (int i=0;i<packet->size;i++)
{
wsprintfA(buf, "%x",packet->data[i]);
stf(buf); //сохраняем в лог файл
stf(" "); // пробел :)
}
а хотелось бы как-то так:
Код:
charid[i]=packet->data[i];
где я косячу?
__________________
C++Builder 6, Delphi 7, RAD Studio XE2, MS VC++...
11.01.2012, 20:02
#19
Admin!
Регистрация: 04.08.2007
Сообщений: 2,360
Сказал Спасибо: 113
Имеет 1,566 спасибок в 651 сообщенях
Elecktron , кури работу с указателями и преобразования типов
если память не изменяет по операторам С++, то будет как то так:
Код:
charid=*(int *)&(packet->data[i]);
__________________
Я здесь практически не появляюсь!, Skype - ikskor
12.01.2012, 05:44
#20
Местный
Регистрация: 27.10.2011
Адрес: Харьков
Сообщений: 106
Сказал Спасибо: 24
Имеет 11 спасибок в 7 сообщенях
спасибо помогло...
правда теперь другая проблема - вылетает в вечный цикл..
Код:
for (int i=0;i<packet->size;i++)
{
buf[i]=*(char *)&(packet->data[i]);
}
__________________
C++Builder 6, Delphi 7, RAD Studio XE2, MS VC++...
Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
Часовой пояс GMT +4, время: 12:54 .
vBulletin style designed by
MSC Team .
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод:
zCarot
Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!