Прочитать строки в utf8 из бинарного файла, Ищу решение |
Здравствуйте, гость ( Вход | Регистрация )
Прочитать строки в utf8 из бинарного файла, Ищу решение |
Litkevich Yuriy |
17.7.2010, 22:14
Сообщение
#11
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
для этих целей в Qt есть класс QByteArray - низкоуровневая строка, которая возвращая значение подставляет нуль в конце.
|
|
|
DEADHUNT |
17.7.2010, 22:16
Сообщение
#12
|
Активный участник Группа: Участник Сообщений: 430 Регистрация: 15.4.2009 Пользователь №: 686 Спасибо сказали: 26 раз(а) Репутация: 2 |
зачем что-то мудрить когда достаточно дописать код:
|
|
|
Алексей1153 |
18.7.2010, 6:00
Сообщение
#13
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
а лучше так
и не забудешь delete вызвать Сообщение отредактировал Алексей1153 - 18.7.2010, 6:07 |
|
|
DEADHUNT |
18.7.2010, 11:21
Сообщение
#14
|
Активный участник Группа: Участник Сообщений: 430 Регистрация: 15.4.2009 Пользователь №: 686 Спасибо сказали: 26 раз(а) Репутация: 2 |
|
|
|
Алексей1153 |
18.7.2010, 14:54
Сообщение
#15
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
DEADHUNT, зато надёжно. А на скорости это не скажется
|
|
|
DEADHUNT |
18.7.2010, 15:11
Сообщение
#16
|
Активный участник Группа: Участник Сообщений: 430 Регистрация: 15.4.2009 Пользователь №: 686 Спасибо сказали: 26 раз(а) Репутация: 2 |
|
|
|
Алексей1153 |
18.7.2010, 15:58
Сообщение
#17
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
DEADHUNT, тут код очень маленький и запутаться просто негде. Но, что бы там не было наколбашено, обеспечиваем, что строка заканчивается на zero-terminator. Вот другой пример:
|
|
|
DEADHUNT |
18.7.2010, 16:40
Сообщение
#18
|
Активный участник Группа: Участник Сообщений: 430 Регистрация: 15.4.2009 Пользователь №: 686 Спасибо сказали: 26 раз(а) Репутация: 2 |
то есть readRawData считает >= labelLen+1? вообще здесь лучше просто string использовать. |
|
|
Алексей1153 |
18.7.2010, 17:41
Сообщение
#19
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
DEADHUNT, для меня это одно и то же. Кстати, ещё ни разу не приходилось std::string применять
А в этом примере я условился, что принимается по ссылке именно вектор. Это вообще дело вкуса и граблей за плечами (так как я немного рассеянный, я всячески себя подстраховываю) |
|
|
iddqd |
28.7.2010, 18:53
Сообщение
#20
|
Студент Группа: Участник Сообщений: 32 Регистрация: 26.11.2009 Пользователь №: 1261 Спасибо сказали: 1 раз(а) Репутация: 0 |
Видимо из-за произошедшего сбоя потерялась часть сообщений в теме. Я попытался восстановить по имеющимся уведомлениям об ответах:
maint Цитата Цитата Цитата(iddqd @ 20.7.2010, 15:36) Есть дата, хранящаяся в микросекундах в виде int64. Как правильнее и быстрее преобразовать её в QDate/QDateTime ? Пробовал QDateTime::addMSecs(), не это не то, так как результат в дебаггере показывает 1531 год по моему так void QDateTime::setTime_t ( uint seconds ) Sets the date and time given the number of seconds that have passed since 1970-01-01T00:00:00, Coordinated Universal Time (Qt::UTC). On systems that do not support time zones this function will behave as if local time were Qt::UTC. Litkevich Yuriy Цитата iddqd, возможно дата в Unix-формате, тогда используй: http://doc.crossplatform.ru/qt/4.5.0/qdate...html#fromTime_t (QDateTime QDateTime::fromTime_t ( uint seconds ) [static]) ну а из него уже получишь только дату iddqd Цитата Дата может быть как до 1970, так и после 1970 года. SABROG Цитата Цитата Цитата(iddqd @ 21.7.2010, 17:01) SABROG, год должен получиться 1960-й Правильно, чуток не верно посчитал: 61855747200000000 / 1000 = 61855747200000 // переводим в миллисекунды 61855747200000 / 1000 = 61855747200 // переводим в секунды 365.2424 * 24 * 60 * 60 = 31556943.36 // вычисляем количество секунд в году Грегорианского календаря 61855747200 / 31556943.36 = 1960.1 // получаем количество лет 4,13821440 - остаток 4 секунды. То есть судя по маленькому остатку у тебя в базе почти ровная дата 01-01-1960 00:00:04 --- Дата должна получиться следующая - 06.02.1960 Вопрос остаётся открытым, декодировать так и не получилось пока что... |
|
|
Текстовая версия | Сейчас: 29.11.2024, 1:47 |