0 / 0 / 0
Регистрация: 30.01.2012
Сообщений: 27
|
|
1 | |
Какая функция читает количество байт из файла ?30.01.2012, 17:37. Показов 1806. Ответов 6
Метки нет (Все метки)
Все привет! Люди подскажите, какая функция читает количество байт из файла на асп?
вот на си нашел... а на асп не знаю... а нужно позарез :-( Спасибо. вот что то типа.... Функция FileRead(Handle: Integer; var Buffer; Count: Integer): Integer; ----- Модуль: SysUtils Описание Функция читает Count байт из файла, дескриптор которого указан в параметре Handle, в буфер Buffer и возвращает количество прочитанных байт. Если значение Count превышает размер файла, то фактическое количество прочитанных байт будет меньше значения Count. Дескриптор Handle, может быть получен с помощью функций и FileCreate и FileOpen. ---- http://atrussk.ru/delphi/5/file/file5505.htm
0
|
30.01.2012, 17:37 | |
Ответы с готовыми решениями:
6
Какая функция читает внутреннее время компьютера в секундах? Программа читает содержимое файла, подсчитывает количество пробелов и выводит их количество Функция ReadFile читает половину содержимого файла Файл-функция не читает переменные с другого m-файла |
85 / 61 / 69
Регистрация: 15.03.2007
Сообщений: 6,906
|
|
30.01.2012, 18:45 | 2 |
Пользуйся объектом ADODB.Stream. Вот пример.
Код
Const BUFFER_SIZE = 10000 Set objStream = Server.CreateObject("ADODB.Stream") objStream.Open objStream.Type = 1 ' adTypeBinary objStream.LoadFromFile("c:somefile.zip") buf = objStream.Read(BUFFER_SIZE) Do While(LenB(buf) > 0) For I=1 To LenB(buf) byteValue = AscB(MidB(Buf, I, 1)) 'charValue = Chr(AscB(MidB(Buf, I, 1))) Next buf = objStream.Read(BUFFER_SIZE) Loop objStream.Close()
0
|
0 / 0 / 0
Регистрация: 30.01.2012
Сообщений: 27
|
|
31.01.2012, 10:43 [ТС] | 3 |
Спасибо bazile, кажется это то что нужно...
Теперь я только хотел немного внести коррективы в свой вопрос: Eсть текстовой файл мне нужно его разбить на блоки по 4096 байт, причем так что бы я мог брать ту информацию которая находиться в блоке размером 4096 Ну что то типа 0 до 4096 - берем информацию от 4096 до 8191 - берем информацию и т.д. Буду очень признателен, если поможешь....
0
|
85 / 61 / 69
Регистрация: 15.03.2007
Сообщений: 6,906
|
|
31.01.2012, 10:59 | 4 |
1) Меняешь тип потока на текстовый objStream.Type = 2 ' adTypeText
2) Указываещь кодировку файла - objStream.Charset = "windows-1251" 3) Вместо Read используешь функцию ReadText(4096) - 4096 это кол-во символов которые надо прочитать. Функцию вернет тебе строку.
0
|
0 / 0 / 0
Регистрация: 30.01.2012
Сообщений: 27
|
|
31.01.2012, 11:41 [ТС] | 5 |
Спасибо, друг! Ну и на последок, так что б уже все... еще вопросик Я сделал процедурку Sub ShowFolderSize(filespec) Dim objStream, Buf, i, Num, ByteValue, CharValue Const Buffer_size = 10000 Num = 0 set objStream = Server.CreateObject ("ADODB.Stream") objStream.Open objStream.Type = 2 ' 1 - adTypeBinary | 2 - adTypeText objStream.Charset = "windows-1251" objStream.LoadFromFile(filespec) Buf = objStream.ReadText(4096) Do While(LenB(Buf) > 0) For i=1 To LenB(Buf) ByteValue = AscB(MidB(Buf, i, 1)) CharValue = Chr(AscB(MidB(Buf, I, 1))) Response.Write " ByteValue=" & ByteValue & " CharValue=" & CharValue & "<hr>" Next Buf = objStream.ReadText(4096) Loop objStream.Close() set objStream = nothing End Sub тока не пойму как мне сделать так что бы он возвращал мне найденное из интервала 4096 байт значения? а вот структура самого файла... BEGIN|23112005|000|123456789.333 BODY|1|1|0000|11|11012005|23112005|101512|123|1111111111222222333|1|11012005 BODY|2|2|0000|22|11012005|23112005|101512|123|1111111111222222222|1|11012005 результата: ByteValue=66 CharValue=B -------------------------------------------------------------------------------- ByteValue=0 CharValue= ByteValue=69 CharValue=E -------------------------------------------------------------------------------- ByteValue=0 CharValue= ByteValue=71 CharValue=G -------------------------------------------------------------------------------- ByteValue=0 CharValue= ByteValue=73 CharValue=I -------------------------------------------------------------------------------- ByteValue=0 CharValue= ByteValue=78 CharValue=N -------------------------------------------------------------------------------- ByteValue=0 CharValue= ByteValue=124 CharValue=| -------------------------------------------------------------------------------- ByteValue=0 CharValue= ByteValue=50 CharValue=2 -------------------------------------------------------------------------------- ByteValue=0 CharValue= ByteValue=51 CharValue=3 -------------------------------------------------------------------------------- ByteValue=0 CharValue= ByteValue=49 CharValue=1 -------------------------------------------------------------------------------- ByteValue=0 CharValue= ByteValue=49 CharValue=1 -------------------------------------------------------------------------------- ByteValue=0 CharValue= ByteValue=50 CharValue=2 -------------------------------------------------------------------------------- ByteValue=0 CharValue= ByteValue=48 CharValue=0 -------------------------------------------------------------------------------- ByteValue=0 CharValue= ByteValue=48 CharValue=0 -------------------------------------------------------------------------------- ByteValue=0 CharValue= ByteValue=53 CharValue=5 -------------------------------------------------------------------------------- ByteValue=0 CharValue= ByteValue=124 CharValue=| -------------------------------------------------------------------------------- ByteValue=0 CharValue= ByteValue=48 CharValue=0 -------------------------------------------------------------------------------- ByteValue=0 CharValue= ByteValue=48 CharValue=0 -------------------------------------------------------------------------------- ByteValue=0 CharValue= ByteValue=48 CharValue=0 -------------------------------------------------------------------------------- ByteValue=0 CharValue= ByteValue=124 CharValue=| Признаю, что занний не хватает Спасибо, очень выручил...
0
|
85 / 61 / 69
Регистрация: 15.03.2007
Сообщений: 6,906
|
|
31.01.2012, 12:27 | 6 |
ReadText возвращает строку, а не массив байтов, поэтому здесь не следует использовать функции LenB и MidB. Для работы со строками нужно использовать функции Len, Mid, Right, Left и прочие. Полный список функций есть в MSDN
http://msdn.microsoft.com/libr... frame=true
Сообщение от DimonCN
0
|
0 / 0 / 0
Регистрация: 30.01.2012
Сообщений: 27
|
|
31.01.2012, 13:04 [ТС] | 7 |
Спасибо, я кажется разобрался...
0
|
31.01.2012, 13:04 | |
31.01.2012, 13:04 | |
Помогаю со студенческими работами здесь
7
Функция, возвращающая количество байт в файле Программа, которая считывает 8 байт из созданного файла MyFile.dat, начиная с 7-го байта, относительно начала, и 10 байт от конца файла Функция fopen() для большого текстового файла читает только первую строку Функция: изменить старший байт числа на заданное значение, не изменяя младший байт Сколько байт читает BufferedReader.read() ? half duplex, читает только 1 байт Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |