Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.07.01;
Скачать: [xml.tar.bz2];

Вниз

Значение FilePointer при ошибке чтения файла.   Найти похожие ветки 

 
Riply ©   (2007-06-06 01:32) [0]

Здравствуйте !
Допустим, мы читаем файл блоками cbBufSize = 4096.
var
OldPointer, NewPointer: Int64;
.......
SetFilePointerEx(FHandle, 0, @OldPointer, FILE_BEGIN);
ReadFile(FHandle, Buffer, cbBufSize, ...);
SetFilePointerEx(FHandle, 0, @NewPointer, FILE_CURRENT);
И, например, из-за повреждения поверхности на расстоянии ErrMark = 2048,
от начала файла, получаем ошибку чтения.
Чему будет равняться NewPointer ?
Нулю( как бы и не пытались читать ) или ErrMark ?
cbBufSize, как мне кажется, врядли будет :) Может непредсказуемо ?
P.S. Не сумела придумать как это можно эмулировать.
Ну не царапать же, например, CD-диск :)


 
Германн ©   (2007-06-06 01:52) [1]


> P.S. Не сумела придумать как это можно эмулировать.
> Ну не царапать же, например, CD-диск :)
>

Ну "царапни" 3.5" дискету. Это дешевле :)
Не, ну я и вправду восхищён таким стремлением "методом научного тыка" обшарить всё, что только можно!
:-)
Вас ждёт большое будущее!
Если дождётся всё-таки. Имхо.
:-)


 
Riply ©   (2007-06-06 01:57) [2]

> [1] Германн ©   (06.06.07 01:52)
:) Привет ! Опять полуночничаешь ? :)
>Ну "царапни" 3.5" дискету. Это дешевле :)
Не скажи. Их у меня мало осталось, а выпуск прекращен.
Я, даже, не знаю: есть ли они еще в магазинах.


 
Германн ©   (2007-06-06 02:39) [3]


> Riply ©   (06.06.07 01:57) [2]
>
> > [1] Германн ©   (06.06.07 01:52)
> :) Привет ! Опять полуночничаешь ? :)
>

Это моё естественное состояние! Поэтому и свой ник я выбрал таким.


 
Германн ©   (2007-06-06 02:45) [4]


> >Ну "царапни" 3.5" дискету. Это дешевле :)
> Не скажи. Их у меня мало осталось, а выпуск прекращен.
> Я, даже, не знаю: есть ли они еще в магазинах.
>

Есть. В Москве точно есть. В СПБ - наверняка тоже есть.
Но впрочем можно "царапнуть" и CD!
Ну что такое 15 руб? Полтора батона белого хлеба!
Или полторы булки дороже?
:-)


 
Плохиш ©   (2007-06-06 03:04) [5]


> Riply ©   (06.06.07 01:32)  

Ничего не понял, какое отношение OldPointer, NewPointer имеют к позиции в файле при чтении? Если их подставляют в SetFilePointerEx в качестве старшего слова для перемещения позиции.


 
Riply ©   (2007-06-06 05:52) [6]

> [5] Плохиш ©   (06.06.07 03:04)
>Ничего не понял, какое отношение OldPointer, NewPointer имеют к позиции в файле при чтении? Если их >подставляют в SetFilePointerEx в качестве старшего слова для перемещения позиции.
Это я тебя понять не могу. Что значит "их подставляют в SetFilePointerEx в качестве старшего слова" ?

Была принесена великая жертва ради науки !(перевод: нашла старую испорченную дискету :).
Опыты показали, что FilePointer остается неизменным
(тем, который был до неудачной попытки чтения).


 
Плохиш ©   (2007-06-06 11:06) [7]


> Riply ©   (06.06.07 05:52) [6]
> > [5] Плохиш ©   (06.06.07 03:04)
> >Ничего не понял, какое отношение OldPointer, NewPointer
> имеют к позиции в файле при чтении? Если их >подставляют
> в SetFilePointerEx в качестве старшего слова для перемещения
> позиции.
> Это я тебя понять не могу. Что значит "их подставляют в
> SetFilePointerEx в качестве старшего слова" ?

Да я справку по указанным фукциям прочитал...


 
Desdechado ©   (2007-06-06 11:08) [8]

> Опыты показали, что FilePointer остается неизменным
И это естественно, ведь операция завершилась с ошибкой, следовательно, исходные остались теми же.
Ты же не низкоуровневыми функциями пользуешься. Это если б ты обращалась напрямую к контроллеру или к евойному драйверу, там другие варианты возможны были бы.


 
Плохиш ©   (2007-06-06 11:13) [9]


> Опыты показали, что FilePointer остается неизменным

Кстати, я рад, что опыты подтвердили то, что стоит в первом абзаце описания функции :-))
The ReadFile function reads data from a file, starting at the position indicated by the file pointer. After the read operation has been completed, the file pointer is adjusted by the number of bytes actually read, unless the file handle is created with the overlapped attribute. If the file handle is created for overlapped input and output (I/O), the application must adjust the position of the file pointer after the read operation.



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2007.07.01;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.004 c
15-1180159464
boriskb
2007-05-26 10:04
2007.07.01
Мы


1-1178178322
Layner
2007-05-03 11:45
2007.07.01
Мышка над TImage, определить координаты над TImage


2-1181303716
koha
2007-06-08 15:55
2007.07.01
на странный глюк нарвался


3-1175756389
vl
2007-04-05 10:59
2007.07.01
Тригеры


2-1181227245
webpauk
2007-06-07 18:40
2007.07.01
Открыть файл





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский