Дано: IIS 5 с ASP (JScript и VBScript, по желанию)
Этап первый: попробуйте прочитать бинарный файл. Например, картинку в формате JPG
Что, таки получилось?
Тогда этап второй: попробуйте из этого файла выделить байты, скажем, с 10 по 20. И напечатать дамп.
А те, кто придумал эти чисто клиентские языки использовать в качестве серверных, заслуживают медленной и мучительной смерти. За мои сильно испорченные нервы.
Этап первый: попробуйте прочитать бинарный файл. Например, картинку в формате JPG
Что, таки получилось?
Тогда этап второй: попробуйте из этого файла выделить байты, скажем, с 10 по 20. И напечатать дамп.
А те, кто придумал эти чисто клиентские языки использовать в качестве серверных, заслуживают медленной и мучительной смерти. За мои сильно испорченные нервы.
Tags:
no subject
no subject
no subject
no subject
Они обусловлены тем, что уже имеется система, реализованная на JScript'е, а к ней надо добавить маленькую дополнительную функциональность.
no subject
no subject
И оно действительно так. Только вот менять платформу ради одного нововведения как-то не хочется.
no subject
no subject
no subject
Еще один вариант (http://www.motobit.com/tips/detpg_read-write-binary-files/).
Второй, насколько я понимаю, должен достаточно легко позволять сделать ч. 2. Проверить, увы, не могу, всю жизнь писал под LAMP, ставить IIS сейчас откровенно нет желания :) Мимо поста не смог пройти, т.к. не верю, что настолько популярная платформа не позволяет решать настолько тривиальные проблемы.
no subject
Проблема в том, что объект, полученный в результате такого чтения, пригоден для записи куда-нибудь (в другой ADODB.Stream или Response) только целиком.
Осталась вторая часть - как получить оттуда отдельные байты.
Хинт: в результате выполнения операции BinaryStream.Read возвращается вовсе не массив байтов, и не строка, а неопределенный объект с еще менее определенными методами.
Попытка применить к нему оператор new String() заканчивается неудачей из-за несовместимости типов.
Про то, что и прочитать можно только весь файл целиком, а он может быть довольно большим, я уже не говорю.
no subject
no subject
Наверное, можно, если задаться такой целью. Но это ж надо искать компилятор, где-то разворачивать его, собирать DLL. А сервер чужой, и я на него попадаю исключительно через rdesktop.
Я видел готовые модули, но они почему-то за деньги.
Вот такая печальная история.
Мозг не сектым.
Там описан скрипт Upload. Он тоже не весь поток в файл пишет. Дальше догадаешься?
Re: Мозг не сектым.
biData = Request.BinaryRead(Request.TotalBytes)
после чего из этого biData непонятным мне образом извлекаются данные.
У меня из ADODB.Stream методом Read возвращается непонятный объект, из которого данные нормальным способом извлечь не получается.
Re: Мозг не сектым.
TypeName() для чего придумали? ;-)
Эххх молодешшшшьььь ....
Rem ====================================================== sFileName = "MyGif.gif" iFrom = 10 iLen = 15 Const ForReading = 1, ForWriting = 2, ForAppending = 8 Set oFso = CreateObject("Scripting.FileSystemObject") Set oBinFile = oFso.OpenTextFile( sFileName, ForReading) oBinFile.Skip( iFrom ) MyBinBlock = oBinFile.Read( iLen ) oBinFile.Close Convert = "" for i = 1 to iLen Convert = Convert & Right( "0" & Hex(Asc(Mid(MyBinBlock,i,1))) & " ", 3) next WScript.Echo ConvertRe: Эххх молодешшшшьььь ....
FileSystemObject provides a non-hierarchical structure to manipulate, read, and create ASCII and Unicode text files. This structure is very different from the hierarchical structure of the original implementation of File I/O in Visual Basic. FileSystemObject does not support binary file access, so you must still use the original File I/O model in Visual Basic for binary file access. (http://support.microsoft.com/kb/186118/)
The FSO model, contained in the Scripting type library (Scrrun.dll), supports the creation and manipulation of text files through the TextStream object; however, the FSO model does not support binary files. To manipulate binary files, use the FileOpen Function with the Binary keyword. (http://msdn2.microsoft.com/en-us/library/aa711216(vs.71).aspx) Указанная функция присуствует в VB, но не в VBScript'е.
Ну и на закуску: http://blogs.msdn.com/ericlippert/archive/2005/04/20/410127.aspx
Re: Эххх молодешшшшьььь ....
Саш не морочь голову. Тебе говорят, что в японской локали E0 будет периравнено к 00. Ну наф её - японскую локаль, то? Setlocale, а как с файлом позабавился, можешь, ради чистоты, вернуть обратно. Не, ну если хочется гемороиться с дополнительными объектами - НЕТ ПРЕГРАДЫ ПАТРИОТАМ!
Re: Эххх молодешшшшьььь ....
Re: Эххх молодешшшшьььь ....
А то мне до вечера проверить не на чем
Re: Эххх молодешшшшьььь ....
ебал я в рот эти табличкинесмотря на предупреждение "DO NOT DO THIS" из последней твоей ссылки сделал bin фалик :' DO NOT DO THIS Set FSO=CreateObject("Scripting.FileSystemObject") Set File=FSO.CreateTextFile("test.bin", True) For i = 0 to 255 File.Write Chr(i) Next File.Closeсоздал файлик и просмотрел его ГЛАЗАМИ. ВЕСЬ.
По твоей просьбе проставил в программу :
и получил на выходе :
P.S. И удовлетворенный пошел домой :-)
P.P.S. На всякий случай :
WScript.Echo GetLocale
Возвращает 1049
:-)))))
Re: Мозг не сектым.
Re: Мозг не сектым.
Rem ====================================================== sFileName = "MyGif.gif" iFrom = 10 iLen = 15 Const ForReading = 1, ForWriting = 2, ForAppending = 8 Set oFso = CreateObject("Scripting.FileSystemObject") Set oBinFile = oFso.OpenTextFile( sFileName, ForReading) oBinFile.Skip( iFrom ) Convert = "" for i = 1 to iLen Convert = Convert & Right( "0" & Hex(Asc(oBinFile.Read(1))) & " ", 3) next WScript.Echo Convert oBinFile.Close