Форум программистов, компьютерный форум, киберфорум
C#: Web, ASP.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
bodya

Response.BinaryWrite и пробелы между символами

18.09.2008, 20:49. Показов 1032. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Использую Response.BinaryWrite для вывода сформированного gif, в результате картинка не отображается. Смотрю результат вывода и вижу примерно такое G I F 8 9 ... Все символы через пробел, код #20. Самое странное, если я вывожу константу, вот так Response.BinaryWrite 'AAAZZZ', то в результате всё впорядке AAAZZZ - без всяких пробелов. Буду очень благодарен за любые мысли и рекомендации. Также, если у кого есть примеры генерации gif и/или других форматов на ASP дайте пожалуйста ссылки или вышлите сами исходники.
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.09.2008, 20:49
Ответы с готовыми решениями:

Проблема с Response.BinaryWrite
Запускаю код, предоставленный smaliq-ом в дискуссии от 24.11.2003г., созданной Alex11111: Set oFS =...

Response.BinaryWrite + файл Excel-a
У меня проблема при открытии файла Excel-a командой 'Response.BinaryWrite имя_файла_Excela ' . Содержимое файла (тип -image) , имя и размер...

Странности с Response.BinaryWrite / content-disposition - attachment
Следующий код вызывает стандартное окно браузера с диалогом открыть/сохранить. Работает в IE6, в IE5 и IE5.5 выдает окно, но два раза, если...

4
al
19.09.2008, 05:40
http://www.relib.com/forums/topic.asp?id=732908
bodya
21.09.2008, 14:50
(Пожалуйста, смотрите первое сообщение этой нити)

Что интересно, если записать строку содержащую сформированный gif в файл, то gif оказывается корректным и нормально отображается.

Вот код записи в файл:
Code
1
2
3
4
5
6
'strNewGif содержит наполнение gif 'GIF89...'
'strPath имя файла
Set objFSO = CreateObject('Scripting.FileSystemObject')
Set objTextFile = objFSO.CreateTextFile(strPath, True)
 
objTextFile.Write strNewGif
А та же строка выводимая Response.BinaryWrite уже перемежается пробелами 'G I F 8 9 . . .'
bodya
21.09.2008, 17:24
(К первому же сообщению в этой нити)

Проблема решена!!! Уже был испробован метод вывода посредством ADODB.Stream, с предварительным заталкиванием строки в Recordset в виде поля adVarBinary. До ума не доводил, так как, вызрела модификации с изменениями в один символ (!!!).

При формирвании строки с телом gif из массива integer значений используем CharB вместо Char - вот и всё!

В результате получается строка содержащая однобайтовые символы, которые в неизменённом виде выводятся Response.BinaryWrite

Вот пример:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
'//цвет единственного пикселя и прозрачность :)
intRed = 100
intGreen = 0
intBlue = 0
 
intTransparent = 0
 
'// формируем однопиксельный gif 
Dim myArray(42)
myArray(0) = 71
myArray(1) = 73
myArray(2) = 70
myArray(3) = 56
myArray(4) = 57
myArray(5) = 97
myArray(6) = 1
myArray(7) = 0
myArray(8) = 1
myArray(9) = 0
myArray(10) = 128
myArray(11) = 0
myArray(12) = 0
 
'//RGB values
myArray(13) = intRed
myArray(14) = intGreen
myArray(15) = intBlue
 
myArray(16) = 0
myArray(17) = 0
myArray(18) = 0
myArray(19) = 33
myArray(20) = 249
myArray(21) = 4
 
'//Transparency value
If intTransparent = 0 Then
    myArray(22) = 0
Else
    myArray(22) = 1
End If
 
myArray(23) = 0
myArray(24) = 0
myArray(25) = 0
myArray(26) = 0
myArray(27) = 44
myArray(28) = 0
myArray(29) = 0
myArray(30) = 0
myArray(31) = 0
myArray(32) = 1
myArray(33) = 0
myArray(34) = 1
myArray(35) = 0
myArray(36) = 0
myArray(37) = 2
myArray(38) = 2
myArray(39) = 68
myArray(40) = 1
myArray(41) = 0
myArray(42) = 59
 
'//Create gif string
'Dim strNewGif (42)
For i = 0 To 42
  strNewGif = strNewGif & ChrB(myArray(i))
  'strNewGif = strNewGif & Chr(myArray(i))
  '//Must be one byte per char, instead Chr generate 2 bytes chars as UNICODE
Next
 
'//Output to HTTP
    Response.Buffer = True
    Response.ContentType = 'image/gif'
    Response.BinaryWrite strNewGif
    Response.Flush
bodya
21.09.2008, 17:26
Сорррииии
надо читать ChrB и Chr вместо CharB и Char - совсем от жары запарился!
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.09.2008, 17:26
Помогаю со студенческими работами здесь

Передача большого файла клиенту через Response.BinaryWrite
Народ... Столкнулся с проблемой Отдаю через ASP скрипт файл клиенту. ------------------------------------------------ <% ...

Как на сервере открыть графический файл получить битовый массив и с помощью Response.BinaryWrite его отдать запрашиваемугу обьекту?
Кто знает как на сервере открыть графический файл получить битовый массив и с помощью Response.BinaryWrite его отдать...

Проблема с передачей файла клиенту через Response.binarywrite
Народ... Я уже во многих форумах спрашивал, но никто не ответил, может хоть вы мне поможите Я из ASP передаю файл клиенту через...

Добавить пробелы между символами
Добрый вечер уважаемые! У меня есть такая задача: добавить пробелы между всеми символами. Времени не так много осталось до сдачи, а вот к...

Поставить пробелы между символами в массиве
поставить пробелами между символами в массиве masm model small stack 256 .data mes1 db 0ah,0dh,'ishodniy massiv-$',0ah,0dh mes2...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru