Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Файл ресурса? Добавлено: 11.02.06 14:03  

Автор вопроса:  KEP
Помогите программеры!

Есть файл ресурсов file.res в нем содержаться разные текстовые документы
если программу запустить из Бэйсика то извлекаются они нормально. Но если откомпилировать
программу и запустить ее то в конце каждого текстового документа после его извлечения
появляются два или три пустых символа. Как извлечь оригинал! из ресурса?



Dim s1() As Byte
Private Sub Form_Load()
s1 = LoadResData(101, "LCDFILM")
Open "C:\Документы\List.cd" For Binary Access Write As #1
Put #1, 1, s1
Close #1
End Sub

Ответить

  Ответы Всего ответов: 15  

Номер ответа: 1
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #1
Добавлено: 11.02.06 14:14
да вроде бы все верно...

Ответить

Номер ответа: 2
Автор ответа:
 KEP



Вопросов: 44
Ответов: 119
 Профиль | | #2 Добавлено: 11.02.06 14:24
Я тоже так считал но... может еще способ есть блин, все на смарку..., очень нужно, в общем пишу пакет обнавлений, в некоторых файлах есть числа 4722 но после извлечения получается так "4722 " а должно быть "4722". Что только не пробывал.... я в отчаинии.

Ответить

Номер ответа: 3
Автор ответа:
 KEP



Вопросов: 44
Ответов: 119
 Профиль | | #3 Добавлено: 11.02.06 14:25
первый вариант с пробелами 4722 пробел пробел

Ответить

Номер ответа: 4
Автор ответа:
 SerJ



Вопросов: 24
Ответов: 332
 Профиль | | #4 Добавлено: 11.02.06 14:42
Дай более подробный код, или это в вопросе и есть весь пакет обновлений? А то так сложновато разбираться. Трабла у тебя не в работе с ресурсами, а в работе со строковыми переменными и их ф-циями

Оффтоп:
- А я знаю чё у тебя не пашет?
- Ну и чё?
- Программа! :)

Ответить

Номер ответа: 5
Автор ответа:
 KEP



Вопросов: 44
Ответов: 119
 Профиль | | #5 Добавлено: 11.02.06 15:44
Конечно же нет, не весь, но даже этот маленький кусочек который я привел не хочет работать правильно !

Ответить

Номер ответа: 6
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #6
Добавлено: 11.02.06 16:09
Можно попробовать через АПИ...

FindResource
 SizeofResource
 LoadResource
 LockResource

Ответить

Номер ответа: 7
Автор ответа:
 KEP



Вопросов: 44
Ответов: 119
 Профиль | | #7 Добавлено: 11.02.06 16:12
Поподробнее если можно...

Ответить

Номер ответа: 8
Автор ответа:
 Neco



ICQ: 247906854 

Вопросов: 133
Ответов: 882
 Web-сайт: neco.pisem.net
 Профиль | | #8
Добавлено: 11.02.06 16:46
Проверь храняться ли они у тебя в ресурсах типа string. Если это так, то попробуй засунуть их в custom. Только тогда их надо ещё прогонять через strConv или как там в vb6 (уже начинаю подзабывать то, чем давно не пользовался) с параметром конвертации, кажется, vbUnicode или типа того.
Может гонит какой линкер или компилятор - переустанови васю - это недолго. Ещё посмотри пустые ли эти файлы (куда ты пишешь строки). Потому что если у тебя файл уже состоит из 6 пробелов, а ты записал в него Binary 5 байтов, то один пробел на конце будет лишним.
Ну и код приведи, если ничего не помогло.

Можно попробовать через АПИ...
FindResource
 SizeofResource
 LoadResource
 LockResource

Не - у всех работает, а у него нет? Должно получиться и на голом васе.

Ответить

Номер ответа: 9
Автор ответа:
 Neco



ICQ: 247906854 

Вопросов: 133
Ответов: 882
 Web-сайт: neco.pisem.net
 Профиль | | #9
Добавлено: 11.02.06 16:49
Ещё (если уж очень прижмёт) можно попробовать хранить все файлы в отдельной папке. Всё равно же ты будешь сжимать свой экзешник раром? Вот и сделаешь sfx архив с запуском и командной строкой после распаковки в temp и вперёд. Ресурсы вообще на фиг не нужны.

Ответить

Номер ответа: 10
Автор ответа:
 KEP



Вопросов: 44
Ответов: 119
 Профиль | | #10 Добавлено: 11.02.06 16:54
Спасибо буду пробывать...
Как именно преминить StrConv - StrConv(arr, vbUnicode) к

Dim s1() As Byte
Private Sub Form_Load()
s1 = LoadResData(101, "LCDFILM";)
Open "C:\Документы\List.cd" For Binary Access Write As #1
Put #1, 1, s1
Close #1
End Sub

Ответить

Номер ответа: 11
Автор ответа:
 KEP



Вопросов: 44
Ответов: 119
 Профиль | | #11 Добавлено: 11.02.06 16:57
Сделал так Private Sub Form_Load()
Dim s1() As Byte
s1 = LoadResData(101, "1";)
's1 = LoadResource(101, 1)
Open "C:\5\List.cd" For Binary Access Write As #1
x = StrConv(s1, vbUnicode)
Put #1, 1, x
Close #1
End

End Sub

Теперь вместо трех пробелов внизу поивилась 4-ре внизу. Сильно не ругайте, некогда не работал с StrConv. Можно сказать методом тыка

Ответить

Номер ответа: 12
Автор ответа:
 KEP



Вопросов: 44
Ответов: 119
 Профиль | | #12 Добавлено: 11.02.06 16:58
вверху пробелы появились, ссори!

Ответить

Номер ответа: 13
Автор ответа:
 KEP



Вопросов: 44
Ответов: 119
 Профиль | | #13 Добавлено: 11.02.06 18:36
Всем Всем Все большущие СПОСИБО за помощь!!! Проблема решена!

Ответить

Номер ответа: 14
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #14
Добавлено: 12.02.06 04:30
в чем трабла-то хоть была?

Ответить

Номер ответа: 15
Автор ответа:
 KEP



Вопросов: 44
Ответов: 119
 Профиль | | #15 Добавлено: 12.02.06 04:55
Даже не знаю, мож действидель компилятор кривой мож ENGLISH Басик установить? В общем сделал по другому создал самораспоковывающий SFX архив запускаю его скрытно X = Shell(sh & "\Upgrade.exe", vbHIDE)

Далее жду завершения распаковки... после определяю где у пользователя установленна моя программа и перемещаю туды уже распакованное обновление. Пока так..

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам