Страница: 1 |
Страница: 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-сайт:
Профиль | | #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-сайт:
Профиль | | #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-сайт:
Профиль | | #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-сайт:
Профиль | | #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-сайт:
Профиль | | #14
Добавлено: 12.02.06 04:30
в чем трабла-то хоть была?
Номер ответа: 15
Автор ответа:
KEP
Вопросов: 44
Ответов: 119
Профиль | | #15
Добавлено: 12.02.06 04:55
Даже не знаю, мож действидель компилятор кривой мож ENGLISH Басик установить? В общем сделал по другому создал самораспоковывающий SFX архив запускаю его скрытно X = Shell(sh & "\Upgrade.exe", vbHIDE)
Далее жду завершения распаковки... после определяю где у пользователя установленна моя программа и перемещаю туды уже распакованное обновление. Пока так..