Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как лучше сделать...?

725
24 июля 2006 года
UnErase
190 / / 08.06.2006
Имеется n-е количество картинок (jpg, gif, swf и т.д.).
Как лучше всего все эти картинки, загнать в свой файл (пустой, созданный с пом. TFileStream, без сжатия), чтобы потом можно было их оттуда вытащить без потери качества и в те же папки, где они раньше лежали?

Подскажите - как лучше это реализовать?
Что лучше использовать?
246
24 июля 2006 года
GIZMO
1.8K / / 30.07.2004
[QUOTE=UnErase]Имеется n-е количество картинок (jpg, gif, swf и т.д.).
Как лучше всего все эти картинки, загнать в свой файл (пустой, созданный с пом. TFileStream, без сжатия), чтобы потом можно было их оттуда вытащить без потери качества и в те же папки, где они раньше лежали?

Подскажите - как лучше это реализовать?
Что лучше использовать?[/QUOTE]
Заведи структуру описывающую хранимые файлы (в твоем супер-файле):

struct FileRec
{
...
char FileName[255];
DWORD Size;
...

};
и пиши один за одним.
1. Создал свой файл (на запись).
2. Открыл файл № ... на чтение.
3. Определил его размер, заполнил соотв поля структуры.
4. Записал структуру в файл, за ней сам файл.
6. Открыл следующий файл...и т.д.

Читатаешь:
1. Считал первую структуру
2. Определил имя, путь, размер и т.д.(сам решишь чего тебе надо) файла.
3. Создал новый файл (), считал Size байт
4. Следующая структура (если есть конечно).
725
25 июля 2006 года
UnErase
190 / / 08.06.2006
Не пойму в чем ошибка?

Объявление структуры:
 
Код:
typedef struct __StructBinFile
{
   char FileName[2048];
   DWORD FileSize;
}_StructBinFile;


Объявление переменной типа структуры:
 
Код:
_StructBinFile StructBinFile;


Присваиваю полю структуры FileName значение "C:\file.txt":
 
Код:
StructBinFile.FileName = "C:\file.txt";


Компилятор говорит, что ошибка:
[C++ Error] Main.cpp(285): E2277 Lvalue required

Не понимаю почему ошибка? Что значит Lvalue required?
И как это исправить? Как правильно присвоить значение?
240
25 июля 2006 года
aks
2.5K / / 14.07.2006
strcpy(StructBinFile.FileName, "C:\file.txt");
Это же не Java. Нельзя просто указателю или массиву символов (что в принципе одно и тоже) просто так присвоить строку (по сути тоже константый указатель).
Хочешь напрямую присваивать надо использовать классы строковые с перегруженным оператором присваивания. Благо их полно.
725
25 июля 2006 года
UnErase
190 / / 08.06.2006
Все!
Уже сам разобрался... надо было strcpy заюзать!

И все таки что значит [C++ Error] Main.cpp(285): E2277 Lvalue required
240
25 июля 2006 года
aks
2.5K / / 14.07.2006
Что то вроде - требуется корректная опреация присваивания. Тоесть левый операнд (отсюда lvalue) должен уметь принимать присваивание.
А поскольку FileName - статически заданный массив, присваивать ему другой указатель (например строку) нельзя.

Да в C Builder дурацкие сообщения об ошибках ))
725
25 июля 2006 года
UnErase
190 / / 08.06.2006
Спасибо за ответы!

У меня уже все работает с файлами и с картинками... Все объединяется и все распаковывается! :)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог