November 2019

S M T W T F S
      12
34 5 678 9
10111213141516
17181920212223
24252627282930

Style Credit

Expand Cut Tags

No cut tags
Sunday, May 6th, 2007 06:46 pm
Дано: IIS 5 с ASP (JScript и VBScript, по желанию)

Этап первый: попробуйте прочитать бинарный файл. Например, картинку в формате JPG

Что, таки получилось?

Тогда этап второй: попробуйте из этого файла выделить байты, скажем, с 10 по 20. И напечатать дамп.


А те, кто придумал эти чисто клиентские языки использовать в качестве серверных, заслуживают медленной и мучительной смерти. За мои сильно испорченные нервы.
Tags:
Monday, May 7th, 2007 10:03 am (UTC)
«Официальная» рекомендация (http://support.microsoft.com/kb/193998) от MS.
Еще один вариант (http://www.motobit.com/tips/detpg_read-write-binary-files/).

Второй, насколько я понимаю, должен достаточно легко позволять сделать ч. 2. Проверить, увы, не могу, всю жизнь писал под LAMP, ставить IIS сейчас откровенно нет желания :) Мимо поста не смог пройти, т.к. не верю, что настолько популярная платформа не позволяет решать настолько тривиальные проблемы.
Monday, May 7th, 2007 10:31 am (UTC)
Поздравляю. Вы прошли первую часть квеста.

Проблема в том, что объект, полученный в результате такого чтения, пригоден для записи куда-нибудь (в другой ADODB.Stream или Response) только целиком.
Осталась вторая часть - как получить оттуда отдельные байты.

Хинт: в результате выполнения операции BinaryStream.Read возвращается вовсе не массив байтов, и не строка, а неопределенный объект с еще менее определенными методами.
Попытка применить к нему оператор new String() заканчивается неудачей из-за несовместимости типов.

Про то, что и прочитать можно только весь файл целиком, а он может быть довольно большим, я уже не говорю.
Monday, May 7th, 2007 10:54 am (UTC)
Мда, признаю. А скомпилировать ActiveX-объект ну совсем-совсем никак?
Monday, May 7th, 2007 11:05 am (UTC)
Который?

Наверное, можно, если задаться такой целью. Но это ж надо искать компилятор, где-то разворачивать его, собирать DLL. А сервер чужой, и я на него попадаю исключительно через rdesktop.
Я видел готовые модули, но они почему-то за деньги.
Вот такая печальная история.