Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка Windows Forms > Файл xxx.bin в ЕХЕ


Автор: kuller 24.6.2008, 17:06
Здравствуйте!
Я вот работаю с БИНАРНЫМ файлом вот таким образом:

Код

FileStream F = new FileStream(name, FileMode.Open, FileAccess.Read);
BinaryReader B = new BinaryReader(F);


name - имя файла, который мне нужно открыть.

Расскажите пожалуйста как вместо name, ну что там енаписать чтобы файл читался из русурса. 

Я пробывал вот так:

Код

Stream Tur = Resource1.ResourceManager.GetStream(name);
            FileStream F = new FileStream(Tur, FileMode.Open, FileAccess.Read);
            BinaryReader B = new BinaryReader(F);

так ругается((

Подскажите пожалуйста как надо.
Заранее спасибо!!!

Автор: Partizan 24.6.2008, 23:31
нутк просто добавь его в ресурсы...
даблклик на resx файле сделай и поймёш сам что делать дальше

Автор: kuller 25.6.2008, 08:55
Цитата

даблклик на resx файле сделай 

Что сделать???

Автор: Partizan 25.6.2008, 11:14
добавляеш в проект файл ресурсов(*.resx)...двойной щелчок мышой на нём

Автор: kuller 25.6.2008, 16:57
Цитата(Partizan @ 25.6.2008,  11:14)
добавляеш в проект файл ресурсов(*.resx)...двойной щелчок мышой на нём

Я файлы ДОБАВИЛ в проект .... а спрашиваю, как ОБРАТИТЬСЯ к БИНАРОНОМУ файлу, который добавлен уже в проект.

Автор: Partizan 25.6.2008, 17:37
1. Добавляем в проект файл *.resx(Resources)
2. Делаем двойной щелчок по этому файлу ресурсов -> Открывается редактор ресурсов
3. У этого редактора есть тулбар...там выбираем Files
4. жмём AddResource и выбираем файл XXX.bin

для программы он предстанет в виде  byte[]....вот и всё...ничего сложного

Добавлено через 2 минуты и 15 секунд
обращаться так: Resource1.Имя_Ресурса...

если тебе нужен поток, то:
Stream st = new MemoryStream(Resource1.Имя_Ресурса);

Автор: kuller 26.6.2008, 13:54
Цитата

Stream st = new MemoryStream(Resource1.Имя_Ресурса); 

поток я и сам сделать могу ... 
Я спросил как теперь ОТКРЫТЬ бинарный файл по чтени.????
Вот тут:
Код

FileStream F = new FileStream(name, FileMode.Open, FileAccess.Read);
BinaryReader B = new BinaryReader(F);

вместо NAME - что написать??

Автор: Partizan 26.6.2008, 15:19
kuller, что ты прицепился к файлу????
когда ты добавил его в ресурсы он с точки зрения программы превратился в byte[]

зачем тебе именно FileStream?

Автор: kuller 26.6.2008, 20:49
Ну а как мне из него теперь тогда читать???

Автор: Partizan 27.6.2008, 10:07
kuller, создаёшь

Stream st = new MemoryStream(Resource1.Имя_Ресурса); 
BinaryReader reader = new BinaryReader(st);

Автор: kuller 27.6.2008, 11:38
Partizan, спасибо .... сейчас попробую.

Добавлено через 9 минут и 34 секунды
Partizan, а не подскажешь вот что. 

Я сделал как ты посоветовал:

Код

Stream Tur = new MemoryStream(Resource1.Level01);
BinaryReader B = new BinaryReader(Tur);


Так все работает, но оно то работает только для ЧАСТНОГО случая, в данном случае для ___Level01___

А как сделать так, чтобы шло Resource1. а тут NAME, переменная отвечающая за имя ФАЙЛА, который нужно открыть в данный момент???

Автор: Partizan 28.6.2008, 21:40
kuller, 
Код

byte[] binary_file = (byte[])Resource1.ResourceManager.GetObject(ИМЯ_ФАЙЛА_В_РЕСУРСАХ);
Stream Tur = new MemoryStream(binary_file);
BinaryReader B = new BinaryReader(Tur);

Автор: kuller 28.6.2008, 22:35
Partizan, ОГРОМНОЕ СПАСИБО))))
Все работает!!!!!

Partizan, скажи, так получается к ЛЮБОМУ файлу из ресурса можно обратиться, не обязательно текстовому или бинарному или аудио или графическому???

Спасибо!!!

Автор: Partizan 28.6.2008, 23:06
Цитата(kuller @ 28.6.2008,  22:35)
Partizan, скажи, так получается к ЛЮБОМУ файлу из ресурса можно обратиться, не обязательно текстовому или бинарному или аудио или графическому???

Да, только не все они воспринимаются как byte[]...какието имеют тип Bitmap, какието string и т.д.

Автор: kuller 29.6.2008, 10:10
Partizan, спасибо большое!!!!

Partizan, скажите а Вы по какой книге (или книгам) разбирались с С#???

Автор: Partizan 29.6.2008, 16:07
если чесно то я читал только синтаксис...
за решением конкретной задачи - лучше смотреть MSDN...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)