typedef struct __StructBinFile
{
char FileName[2048];
DWORD FileSize;
}_StructBinFile;
Как лучше сделать...?
Как лучше всего все эти картинки, загнать в свой файл (пустой, созданный с пом. TFileStream, без сжатия), чтобы потом можно было их оттуда вытащить без потери качества и в те же папки, где они раньше лежали?
Подскажите - как лучше это реализовать?
Что лучше использовать?
Как лучше всего все эти картинки, загнать в свой файл (пустой, созданный с пом. TFileStream, без сжатия), чтобы потом можно было их оттуда вытащить без потери качества и в те же папки, где они раньше лежали?
Подскажите - как лучше это реализовать?
Что лучше использовать?[/QUOTE]
Заведи структуру описывающую хранимые файлы (в твоем супер-файле):
struct FileRec
{
...
char FileName[255];
DWORD Size;
...
};
и пиши один за одним.
1. Создал свой файл (на запись).
2. Открыл файл № ... на чтение.
3. Определил его размер, заполнил соотв поля структуры.
4. Записал структуру в файл, за ней сам файл.
6. Открыл следующий файл...и т.д.
Читатаешь:
1. Считал первую структуру
2. Определил имя, путь, размер и т.д.(сам решишь чего тебе надо) файла.
3. Создал новый файл (), считал Size байт
4. Следующая структура (если есть конечно).
Объявление структуры:
Код:
Объявление переменной типа структуры:
Код:
_StructBinFile StructBinFile;
Присваиваю полю структуры FileName значение "C:\file.txt":
Код:
StructBinFile.FileName = "C:\file.txt";
Компилятор говорит, что ошибка:
[C++ Error] Main.cpp(285): E2277 Lvalue required
Не понимаю почему ошибка? Что значит Lvalue required?
И как это исправить? Как правильно присвоить значение?
Это же не Java. Нельзя просто указателю или массиву символов (что в принципе одно и тоже) просто так присвоить строку (по сути тоже константый указатель).
Хочешь напрямую присваивать надо использовать классы строковые с перегруженным оператором присваивания. Благо их полно.
Уже сам разобрался... надо было strcpy заюзать!
И все таки что значит [C++ Error] Main.cpp(285): E2277 Lvalue required
А поскольку FileName - статически заданный массив, присваивать ему другой указатель (например строку) нельзя.
Да в C Builder дурацкие сообщения об ошибках ))
У меня уже все работает с файлами и с картинками... Все объединяется и все распаковывается! :)