Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.135.202.224] |
|
Страницы: (8) « Первая ... 5 6 [7] 8 все ( Перейти к последнему сообщению ) |
Сообщ.
#91
,
|
|
|
Там остальное вроде более-менее нормально |
Сообщ.
#92
,
|
|
|
Олег М посмотри пожалуйста хоть краем глаза , вот это правильно
....... case HSCLI_ET_CHAR: // 0 Массив символов длиной не более заданной { std::string s(p, Query1.GetColumnsInfo(j)->len ); std::cout << s.c_str() << " "; } break; case HSCLI_ET_ARRA: // 1 Массив байтов заданной длины std::cout << *reinterpret_cast<unsigned char *>(p) << " "; break; case HSCLI_ET_BYTE: // 2 Элемент - unsigned char (короткое целое) short std::cout << *reinterpret_cast<unsigned char *>(p) << " " ; break; ....... case HSCLI_ET_NMBR: {//6 Номер - 3-х байтовое целое без знака // std::cout << *reinterpret_cast< *>(p); //dR[j] = ; } break; ....... |
Сообщ.
#93
,
|
|
|
Цитата kms @ Олег М посмотри пожалуйста хоть краем глаза , вот это правильно Что именно? |
Сообщ.
#94
,
|
|
|
вот это все
case HSCLI_ET_CHAR: // 0 Массив символов длиной не более заданной { std::string s(p, Query1.GetColumnsInfo(j)->len ); std::cout << s.c_str() << " "; } break; case HSCLI_ET_ARRA: // 1 Массив байтов заданной длины std::cout << *reinterpret_cast<unsigned char *>(p) << " "; break; case HSCLI_ET_BYTE: // 2 Элемент - unsigned char (короткое целое) short std::cout << *reinterpret_cast<unsigned char *>(p) << " " ; break; ....... case HSCLI_ET_NMBR: {//6 Номер - 3-х байтовое целое без знака // std::cout << *reinterpret_cast< *>(p); //dR[j] = ; } break; |
Сообщ.
#95
,
|
|
|
Олег М а еще можешь глянуть возможноли в Линухе вот это подключить
Прикреплённый файлphplinux.7z (81,76 Кбайт, скачиваний: 66) |
Сообщ.
#96
,
|
|
|
Цитата kms @ case HSCLI_ET_ARRA: // 1 Массив байтов заданной длины std::cout << *reinterpret_cast<unsigned char *>(p) << " "; break; std::vector<char> arr(p, p + Query1.GetColumnsInfo(j)->len); std::cout << arr.size() << std::endl; break; |
Сообщ.
#97
,
|
|
|
Цитата Олег М @ std::vector<char> arr(p, p + Query1.GetColumnsInfo(j)->len); std::cout << arr.size() << std::endl; break; ОК пробую |
Сообщ.
#98
,
|
|
|
Сообщ.
#99
,
|
|
|
Сообщ.
#100
,
|
|
|
Цитата kms @ а должно быть вот такие данные А что именно не так? |
Сообщ.
#101
,
|
|
|
byte третья колонка преобразуется вот
case HSCLI_ET_BYTE: // 2 Элемент - unsigned char (короткое целое) short std::cout << *reinterpret_cast<unsigned char *>(p) << " " ; break; но видать не правильно Добавлено вот не идет array(10) вторая колонка и byte третья колонка Добавлено ну array(10) вторая колонка вот тут преобразование case HSCLI_ET_ARRA: { // 1 Массив байтов заданной длины //std::cout << *reinterpret_cast<unsigned char *>(p) << " "; std::vector<char> arr(p, p + Query1.GetColumnsInfo(j)->len) ; std::cout << arr.size() << " " ; } break; |
Сообщ.
#102
,
|
|
|
Цитата kms @ std::cout << *reinterpret_cast<unsigned char *>(p) << " " ; Сделай std::cout << uint32_t(*reinterpret_cast<unsigned char *>(p)) << " " ; Добавлено Цитата kms @ не идет array(10) вторая колонка Массив и не пойдёт, надо делать специальную функцию, чтоб его распечатать Добавлено Что-то типа static void FormatBinary(std::ostream &out, const uint8_t *data, size_t sz, const bool raw = false) { if (!sz || !data) return; const size_t _n = (raw? sizeof("'\\xXX',"): sizeof("XX")) - 1; char buf[(sz * _n) + 1]; char *psz = buf; for (auto end = data + sz; data != end; ++data, psz += _n) sprintf(psz, raw? "'\\x%02X',": "%02X", *data); out << buf; } |
Сообщ.
#103
,
|
|
|
Цитата Олег М @ Сделай std::cout << uint32_t(*reinterpret_cast<unsigned char *>(p)) << " " ; ухты волшебство , ОК третья колонка пошла Добавлено Цитата Олег М @ Массив и не пойдёт, надо делать специальную функцию, чтоб его распечатать понял пробую делаю |
Сообщ.
#104
,
|
|
|
сделал вот так
static void FormatBinary(std::ostream &out, const uint8_t *data, size_t sz, const bool raw = false) { if (!sz || !data) return; const size_t _n = ( raw ? sizeof("'\\xXX',") : sizeof("XX") ) - 1; //char buf[(sz * _n) + 1]; char *buf = new char[(sz * _n) + 1]; char *psz = buf; for (auto end = data + sz; data != end; ++data, psz += _n) sprintf(psz, raw ? "'\\x%02X'," : "%02X", *data); out << buf; } но ошибка ОшибкаC2572FormatBinary: переопределение параметра по умолчанию: параметр 1HyTech \main.cpp118 |
Сообщ.
#105
,
|
|
|
Цитата Олег М @ Что-то типа static void FormatBinary(std::ostream &out, const uint8_t *data, size_t sz, const bool raw = false) { if (!sz || !data) return; const size_t _n = (raw? sizeof("'\\xXX',"): sizeof("XX")) - 1; char buf[(sz * _n) + 1]; char *psz = buf; for (auto end = data + sz; data != end; ++data, psz += _n) sprintf(psz, raw? "'\\x%02X',": "%02X", *data); out << buf; } вообщем так и не смог я завести эту функцию сделал вот так , только вывод идет символов , надо преобразовать каждый символ в шестнадцатеричное число case HSCLI_ET_ARRA: { // 1 Массив байтов заданной длины std::vector<char> arr(p, p + Query1.GetColumnsInfo(j)->len ) ; for (int i = 0; i < arr.size(); i++) stream << arr[i] << " "; } break; |