:: Visual Foxpro, Foxpro for DOS
Ограничение в FREAD
Sergievsky

Сообщений: 133
Дата регистрации: 24.10.2000
Имеется VFP8SP1 и VFP9SP2, Windows 7 (64 битная)

Читаем HELP :
Цитата:
FREAD(nFileHandle, nBytes)

nBytes
Задает количество байтов, возвращаемых функцией FREAD( ) (максимум 65 535 байт). FREAD( ) возвращает данные, начиная с текущей позиции указателя файла и до тех пор, пока не будет возвращено nBytes байтов или пока не встретится конец файла.

nBytes
Specifies the number of bytes returned by FREAD( ) with a limit of 65,535 bytes. FREAD( ) returns data starting from the current file pointer position and continues until it returns nBytes bytes or until it encounters the end of the file.

Экспериментально определяется, что максимальное значение nBytes = 16777184. nBytes = 16777185 вызывает ошибку, то есть предел примерно
16 мегабайт а не 64 килобайта. Чему верить ? Корректно ли использовать "недокументированные" 16 мегабайт ?
Проверить на другой винде не могу, но связано ли это с разрядностью Windows ?
Ratings: 0 negative/0 positive
Re: Ограничение в FREAD
pasha_usue

Сообщений: 3650
Откуда: Е-бург
Дата регистрации: 06.10.2006
Это не единственная неточность хелпа. Максимальный размер строки, например 16Мб, а запихать (при желании) можно и 2Гб.

С разрядностью винды это никак не связано. Экспериментально подобранное вами значение чуть меньше 24 бит. То-есть, теоретически, должно работать на всех 32-х разрядных системах.
Ratings: 0 negative/0 positive
Re: Ограничение в FREAD
Igor Korolyov
Автор

Сообщений: 34580
Дата регистрации: 28.05.2002
FREAD по сути своей предназначена для последовательного "блочного" чтения файлов - зачем делать это такими гигантскими блоками, я не очень понимаю... 16Мб (чуть меньше) это ограничение на размер "обычной строки" в фоксе. Оно вылезает во многих функциях/операторах работы со строками, хотя есть способы получить и строку гораздо большего размера (например через функцию FILETOSTR()). Т.е. с одной стороны "можно", но с другой не на кого будет пенять, когда начнёт ломаться банальный код по сцеплению строк
С разрядностью Win это никак не связано, т.к. фокс это 32-битное приложение и работает в этом режиме независимо от разрядности ОС. Ну, конечно, если не учитывать китайскую переработку VFPx64


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Ограничение в FREAD
leonid

Сообщений: 3204
Откуда: Рига
Дата регистрации: 03.02.2006
Igor Korolyov
Ну, конечно, если не учитывать китайскую переработку VFPx64

И даже, если учитывать.
Ratings: 0 negative/0 positive
Re: Ограничение в FREAD
of63

Сообщений: 25256
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
(обычная читалка чего угодно, откуда она знает, что байты означают) теоретики, блин )
Ratings: 0 negative/0 positive
Re: Ограничение в FREAD
sphinx

Сообщений: 31189
Откуда: Каменск-Уральски
Дата регистрации: 22.11.2006
Этот форум в отсутствии уважаемого Владимира Максимова в большинстве зиждется на поддержке Игоря Королева (Владимир Максимов на этом форуме сделал ФУНДАМЕНТАЛЬНУЮ БАЗУ по FAQ и по разного рода решениям).

С ним можно НЕ соглашаться. Но идеи его читать внимательно советую. Ибо сам так делаю.


------------------
"Veni, vidi, vici!"(с)
Ratings: 0 negative/0 positive
Re: Ограничение в FREAD
dimuhametov

Сообщений: 1562
Откуда: Костанай
Дата регистрации: 01.11.2008
Igor Korolyov
Ну, конечно, если не учитывать китайскую переработку VFPx64
У Чена в компиляторе VFPx64 те же ограничения. проверил.


------------------
Незнание делает жизнь такой интересной.
Ratings: 0 negative/0 positive
Re: Ограничение в FREAD
Igor Korolyov
Автор

Сообщений: 34580
Дата регистрации: 28.05.2002
Я вообще не говорил ничего про FREAD в этом контексте, я лишь уточнил что VFP это обычное 32-битное приложение. Чем является VFPx64 - насколько много в той смеси 32-битного и 64-битного кода, я понятия не имею, да и неинтересно это, если честно Просто как сам факт - есть такого рода гибрид с некоторым количеством 64-битного кода, и работающий НЕ как ординарное 32-битное приложение.


------------------
WBR, Igor
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 24 (Гостей: 24)

© 2000-2024 Fox Club 
Яндекс.Метрика