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:
Tuesday, May 8th, 2007 01:39 pm (UTC)
Это выдача шестнадцатеричного дампа. Разберешься? :-) :
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 Convert
Tuesday, May 8th, 2007 02:31 pm (UTC)
Ты уверен, что это работает для _бинарных_ файлов? Ты правда пробовал запустить этот код?

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
Tuesday, May 8th, 2007 04:04 pm (UTC)
Ой-ой-ой. Наберут пионероффф ...
Саш не морочь голову. Тебе говорят, что в японской локали E0 будет периравнено к 00. Ну наф её - японскую локаль, то? Setlocale, а как с файлом позабавился, можешь, ради чистоты, вернуть обратно. Не, ну если хочется гемороиться с дополнительными объектами - НЕТ ПРЕГРАДЫ ПАТРИОТАМ!
Tuesday, May 8th, 2007 04:06 pm (UTC)
А да. Не полностью ответил. Саш - запускал и проверял. Специально прочитать символы возврата каретки, 00 и из верхней части таблицы.
Tuesday, May 8th, 2007 04:09 pm (UTC)
чисто на всякий случай - 0x84 нормально читается?
А то мне до вечера проверить не на чем
Tuesday, May 8th, 2007 04:31 pm (UTC)
Чисто по приколу, ебал я в рот эти таблички несмотря на предупреждение "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

создал файлик и просмотрел его ГЛАЗАМИ. ВЕСЬ.

По твоей просьбе проставил в программу :
sFileName = "test.bin"
iFrom     = &H8
iLen      = 8

и получил на выходе :
80 81 82 83 84 85 86 87


P.S. И удовлетворенный пошел домой :-)

P.P.S. На всякий случай :
WScript.Echo GetLocale
Возвращает 1049
:-)))))