Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> преобразование битов в файл 
V
    Опции темы
ZC1989
Дата 6.12.2006, 21:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 468
Регистрация: 17.7.2006
Где: Нижний Новгород; Россия

Репутация: 1
Всего: 1



Подскажите как биты файла уже загруженные в память преобразовать в объект обычного файла или ещё во что, но что бы можно было с ними работать через обычные функции чтения на подобии std::fstream read(…); или подобных же АПИшных… файл текстовый

Получаю я этот набор битов читая файл из зип-архива и прочитанное помещается в void *pBuffer
Так что переделать структуру чтения никак не получится…



--------------------
озарение настанет позже, когда поймём больше... (Сo. Stigmata)
PM MAIL ICQ   Вверх
Aleksandor
Дата 6.12.2006, 22:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Практик
**


Профиль
Группа: Участник
Сообщений: 272
Регистрация: 22.11.2005
Где: россия, зеленогра д

Репутация: 10
Всего: 12



А зачем функции чтения из файла если данные уже прочитаны и лежат в буфере??
А если еще не прочитаны, то ReadFile целиком в буфер или CreateFileMapping


--------------------
Call out Gouranga be happy!!!
Gouranga Gouranga Gouranga ....
That which brings the highest happiness!!
PM MAIL   Вверх
ZC1989
Дата 6.12.2006, 22:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 468
Регистрация: 17.7.2006
Где: Нижний Новгород; Россия

Репутация: 1
Всего: 1



Aleksandor, мне после того как файл прочитан из архива нужно его разобрать по словам... и если есть более красивая возможность это сделать не через функции чтения подскажите smile 


--------------------
озарение настанет позже, когда поймём больше... (Сo. Stigmata)
PM MAIL ICQ   Вверх
Aleksandor
Дата 6.12.2006, 22:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Практик
**


Профиль
Группа: Участник
Сообщений: 272
Регистрация: 22.11.2005
Где: россия, зеленогра д

Репутация: 10
Всего: 12



а что значит разобрать по словам ?


--------------------
Call out Gouranga be happy!!!
Gouranga Gouranga Gouranga ....
That which brings the highest happiness!!
PM MAIL   Вверх
ZC1989
Дата 6.12.2006, 22:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 468
Регистрация: 17.7.2006
Где: Нижний Новгород; Россия

Репутация: 1
Всего: 1



Aleksandor, в файле написаны слова в привычном понимании, так вот мне нужно получать одно за одним и уже плясать от того что это за слово... вобщем перебрать файл по словам разделённым пробелами smile вот как-то так


--------------------
озарение настанет позже, когда поймём больше... (Сo. Stigmata)
PM MAIL ICQ   Вверх
Aleksandor
Дата 6.12.2006, 23:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Практик
**


Профиль
Группа: Участник
Сообщений: 272
Регистрация: 22.11.2005
Где: россия, зеленогра д

Репутация: 10
Всего: 12



в run-time есть strpbrk и strchr, можно их заюэать или написать свой аналог типа MyReadNextWord(...)
Код

ptr=bufferptr;

while (ptr<bufferptr+bufferlength) {
endptr=strchr(ptr, ' ');
if (endptr==NULL) endptr=bufferptr+bufferlength;
size=endptr-ptr;
for (i=0; i<MAX_INDEX; i++) {
if (strlen(mysecretwords[i])!=size) continue;
if (CSTR_EQUAL==CompareString(LOCALE_SYSTEM_DEFAULT,NORM_IGNORECASE,ptr,size,mysecretwords[i],-1))  {
// trevoga!
}
}
while (*ptr==' ') ptr++; // skip spaces
}





--------------------
Call out Gouranga be happy!!!
Gouranga Gouranga Gouranga ....
That which brings the highest happiness!!
PM MAIL   Вверх
ZC1989
Дата 6.12.2006, 23:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 468
Регистрация: 17.7.2006
Где: Нижний Новгород; Россия

Репутация: 1
Всего: 1



Aleksandor, пасиб, я попробую это,  ну а на кройняк, отчаившись буду временный файл создавать, туда записывать биты и уже привычно их читать... - самый бредовый вариан за сегодня smile 


--------------------
озарение настанет позже, когда поймём больше... (Сo. Stigmata)
PM MAIL ICQ   Вверх
ZC1989
Дата 7.12.2006, 00:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 468
Регистрация: 17.7.2006
Где: Нижний Новгород; Россия

Репутация: 1
Всего: 1



Aleksandor, слушай, я попробовал вывести в командной строке содержимое файла побитовое получил 0х00320940 (в файле написано слово "testing") это нормально? ЗЫ: никогда до этого с битами не работал... (всё когда-то бывает в первый разsmile 

да, и ещё, в зиповской функции получения битов файла нужно указать размер буфера, но от изменения этой величины реззультат не меняется smile 


--------------------
озарение настанет позже, когда поймём больше... (Сo. Stigmata)
PM MAIL ICQ   Вверх
ZC1989
Дата 7.12.2006, 00:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 468
Регистрация: 17.7.2006
Где: Нижний Новгород; Россия

Репутация: 1
Всего: 1



предыдущий вопрос можно проигнорить... начал понимать, наконец-то... остался последний вопрос, как из этого буфера сформировать char * или char[MAX_PATH]? я попробовал, в работе возникает ошибка, через strcpy тож не получается...  smile (если получу даже все слова в одной строке, знаю как потом их раскидать...


--------------------
озарение настанет позже, когда поймём больше... (Сo. Stigmata)
PM MAIL ICQ   Вверх
Aleksandor
Дата 7.12.2006, 07:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Практик
**


Профиль
Группа: Участник
Сообщений: 272
Регистрация: 22.11.2005
Где: россия, зеленогра д

Репутация: 10
Всего: 12



Может так?
Код

LPVOID bufferptr;
DWORD bufferlength;

char* ptr=(char*) bufferptr;



--------------------
Call out Gouranga be happy!!!
Gouranga Gouranga Gouranga ....
That which brings the highest happiness!!
PM MAIL   Вверх
ZC1989
Дата 7.12.2006, 14:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 468
Регистрация: 17.7.2006
Где: Нижний Новгород; Россия

Репутация: 1
Всего: 1



это не подходит... вместо нормального слова "testing" на екран выводится ересь... пробовал преобразовывать тож бесполезно... хотя первую букву слова получать получалось через pBuffer[0]  smile , а вот со второй уже проблемы... smile 


--------------------
озарение настанет позже, когда поймём больше... (Сo. Stigmata)
PM MAIL ICQ   Вверх
ZC1989
Дата 7.12.2006, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 468
Регистрация: 17.7.2006
Где: Нижний Новгород; Россия

Репутация: 1
Всего: 1



Всё, отбой! smile  со всем разобрался... проблема была не в чтении... я неправильно проинициализировал буфер вместо voidp *pBuffer[MAX_PATH] навоял voidp *pBuffer = new voidp[MAX_PATH] - это собс-но и не давало работать... а щас всё читается правильно! 
Aleksandor, пасибо за помошь smile 


--------------------
озарение настанет позже, когда поймём больше... (Сo. Stigmata)
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.0520 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.