Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как скопировать файл в память? 
:(
    Опции темы
tenebris
Дата 18.9.2008, 10:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 20.1.2008

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



Привет!!!
Как скопиовать образ файла в память выделенную функцией 
malloc,  а то у меня что-то не получается :(
PM MAIL   Вверх
Alek86
Дата 18.9.2008, 10:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1299
Регистрация: 30.1.2007
Где: Киев

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



какой язык? С или С++?


--------------------
user posted image    user posted image
PM MAIL   Вверх
Lazin
Дата 18.9.2008, 10:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

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



может стоит использовать memory mapped files?
PM MAIL Skype GTalk   Вверх
Alek86
Дата 18.9.2008, 11:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1299
Регистрация: 30.1.2007
Где: Киев

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



Цитата(Lazin @  18.9.2008,  10:50 Найти цитируемый пост)
может стоит использовать memory mapped files?

1. и как ты их отмапишь в уже выделенную память?
2. все же раздел не по винде и хоть сначала лучше дать ответ с копированием smile


--------------------
user posted image    user posted image
PM MAIL   Вверх
Lazin
Дата 18.9.2008, 11:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

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



Цитата(tenebris @  18.9.2008,  10:27 Найти цитируемый пост)
Привет!!!
Как скопиовать образ файла в память выделенную функцией 
malloc,  а то у меня что-то не получается :( 

вызовом функции ReadFile!!! smile 
PM MAIL Skype GTalk   Вверх
Alexeis
Дата 18.9.2008, 11:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

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



типа такого?
Код

   FILE *F   = _wfopen(FileName, L"rb"); 

    if (F)
    {
          fseek(F, 0, SEEK_END);
          filesize = ftell(F);
          fseek(F, 0, SEEK_SET);
          fread(buf, 1, filesize, F);
          fclose(F);
    }



--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
tenebris
Дата 18.9.2008, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 20.1.2008

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



На си чистом, без Апи. Может я неправильно выделяю память, но у меня при просмотре массива байтиков, они не такие как в самом файле :(
PM MAIL   Вверх
Alexeis
Дата 18.9.2008, 15:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

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



Цитата(tenebris @  18.9.2008,  13:59 Найти цитируемый пост)
На си чистом, без Апи.

  Так я и сделал никакого API см. атач

Присоединённый файл ( Кол-во скачиваний: 5 )
Присоединённый файл  copybuf.zip 1,30 Kb


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
tenebris
Дата 18.9.2008, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 20.1.2008

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



Спасибо, ща тестить буду. 
А что это даёт
#pragma hdrstop
#pragma argsused

_wfopen(L"..\\1.txt", L"rb");
Это чья функция, какой библиотеки?
И что за синтаксис - L?
PM MAIL   Вверх
Dennnis
Дата 18.9.2008, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 145
Регистрация: 23.3.2008

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



Цитата(tenebris @  18.9.2008,  15:41 Найти цитируемый пост)
А что это даёт
#pragma hdrstop
#pragma argsused

Ничего не дает, (не обращай на них внимания) проста Билдер добавляет эти прагмы в Н файлы при добавлении.

Добавлено через 1 минуту и 35 секунд

Цитата(tenebris @  18.9.2008,  15:41 Найти цитируемый пост)
_wfopen(L"..\\1.txt", L"rb");
Это чья функция, какой библиотеки?

Стандартная  Сишная библиотека.

Цитата(tenebris @  18.9.2008,  15:41 Найти цитируемый пост)
И что за синтаксис - L? 

Это значит что строка юникодовская (wchar_t *)
--------------------
Get Rich or Die Tryin'
PM   Вверх
tenebris
Дата 18.9.2008, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 20.1.2008

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



Цитата

Стандартная  Сишная библиотека.

Мой борланд с++
под досом который-не хавает такое smile
PM MAIL   Вверх
Dennnis
Дата 18.9.2008, 16:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 145
Регистрация: 23.3.2008

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



1) Убери L перед строкой.
2) Замени _wfopen на fopen.
3) Убери прагмы.
Все должно заработать.
--------------------
Get Rich or Die Tryin'
PM   Вверх
Alexeis
Дата 18.9.2008, 16:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

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



Цитата(tenebris @  18.9.2008,  14:41 Найти цитируемый пост)
#pragma hdrstop
#pragma argsused

Это директивы билдера.

_wfopen - юникодная версия функции fopen (stdio.h). Советую привыкать к ней, тогда не будет проблем с русскоязычными путями к файлу.
Приставка L заставляет компилятор генерить строки в формате юникода UTF16. Раз функция юникодная то и строки должны быть юникодные.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
tenebris
Дата 18.9.2008, 17:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 20.1.2008

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



Ничего не получается :(
На остальных работает, а на этом не хочет. Странно как-то
Вот файл
http://slil.ru/26157969

Вот код. При разных смещениях показывает одно и тоже, и никак не по
казывает внутренности этого файла.


Код


#include <stdio.h>
#include <conio.h>
#include <iostream.h>
#include <stdlib.h>

int main()
{

 clrscr();
 FILE *rom = fopen("c:\\1.gen","rb");
 long size;
 int *buf;
 fseek(rom,0,SEEK_END);
 size=ftell(rom);
 fseek(rom,0,SEEK_SET);
 buf =(int*)malloc(size);
 fread(buf,1,size,rom);
 for (int i=0; i<=20;i++)
 cout << hex<<buf[i]; // одно и то же при разных смещениях.
 fclose(rom);
 free(buf);
 return 1;

}
 

Это сообщение отредактировал(а) tenebris - 18.9.2008, 17:27
PM MAIL   Вверх
Alexeis
Дата 18.9.2008, 17:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

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



tenebris, мож он просто занят? Стань брейком после вычисления размера. Там правильные значения? Значение rom не нулевое?


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

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


 




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


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

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