![]() |
:: Главная :: База знаний :: Встречи :: Сайт М. Дроздова :: Файловый архив :: Книга по VFP 9 :: Русский Help Online :: OFF-LINE Форум | ![]() |
![]() |
Лисоводы всех стран, объединяйтесь !!! |
Re: Очепятки в подлиннике VFP9 | |||
---|---|---|---|
TAS Сообщений: 860 Откуда: Москва |
стр. 416, метод ADD в примере 2 запятые между 'Цветок1' 'Цветок3'
Цветок2 пропущен? ![]() |
||
Re: Очепятки в подлиннике VFP9 | |||
---|---|---|---|
dfr Сообщений: 254 Откуда: Барнаул |
Очепятки на CD.
.. Glava04\Forms\3\A1.prg (лишняя последняя запятая) DEFINE CLASS Условия AS Form ADD OBJECT ogrid1 AS grid WITH RecordSource="MyCust",ColumnCount=1,; titlebar=0, .. Glava04\Forms\5\Form2.scx (конкретно указан путь к таблице) USE c:\таня\пример.dbf IN 0 EXCLUSIVE ![]() |
||
Re: Очепятки в подлиннике VFP9 | |||
---|---|---|---|
TAS Сообщений: 860 Откуда: Москва |
Было уже! См. мой первый пост в этой ветке! ![]() |
||
Re: Очепятки в подлиннике VFP9 | |||
---|---|---|---|
dato Сообщений: 463 Откуда: Тбилиси |
Стр. 1187, пункт 19:
Цитата:На CD тоже самое. ------------------ Если зайца долго бить, он научится стрелять из автомата! (Ученик академика Амосова) ![]() |
||
Re: Очепятки в подлиннике VFP9 | |||
---|---|---|---|
dfr Сообщений: 254 Откуда: Барнаул |
2 TAS
Извиняюсь, пропустил ![]() ![]() |
||
Re: Очепятки в подлиннике VFP9 | |||
---|---|---|---|
dfr Сообщений: 254 Откуда: Барнаул |
стр.29, табл.1.11 "Типы данных полей в таблицах"
Тип данных "Character". "... 16777184 символов" ![]() |
||
Re: Очепятки в подлиннике VFP9 | |||
---|---|---|---|
DmitriyG Сообщений: 34 |
Приведу свою порцию оЧеПяток, которые заметил (пока). Не из "буквоедства", а в надежде, что это поможет улучшить следующее издание книги.
Стр. 176. Таблица 6.14 «Справочник» – добавить «видеокарт». Таблица 6.15 – вместо «Справочник процессоров» должно быть «Справочник CDROM». Таблица 6.16 – вместо «Справочник процессоров» должно быть «Справочник FDD». Стр. 209, строка 10-я снизу: «…имя таблицы может быть указано путём доступа к ней» – очевидно, пропущено «с» – «…указано с путём доступа к ней». Стр. 216 – под заголовком «Функции работы с блокированными записями» две функции: OldVal() и TableUpdate() – оказались «прилепленными» к предыдущим строкам списка, а должны быть отдельными пунктами. Стр. 217 – пропущена начальная скобка в описании функции IndexSeek, т.е. между её именем и первым параметром eExpression. Стр. 218 – две первых строки являются повторением двух последних строк предыдущей страницы. (Наверное, лучше убрать их с предыдущей страницы, а заголовок раздела перенести сюда, на стр. 218). Стр. 218, 3-я и 4-я строки после заголовка «Добавление записей в таблицу»: «…вы всегда сможете открыть таблицу в командном окне и дать команду Append» – наверное, должно быть так: «…вы всегда сможете открыть таблицу и в командном окне дать команду Append». Стр. 219, в последнем абзаце предлагаю заменить три последовательно упомянутых в нём выражения на более понятные: «количество элементов строки массива» – на «количество столбцов массива», «лишние элементы отбрасываются», – на «лишние столбцы отбрасываются», «количество элементов массива» – тоже на «количество столбцов массива». Стр. 220, 2-я – 3-я строки сверху: «…созданное View добавляется в DataEnvironment формы» – после слова «View» не нужна запятая. Ниже, в трёх строчках кода – не понятно, для чего нужна переменная myVar. Вообще весь этот абзац какой-то «скомканный», непонятный. Как создать представление? Как добавить его в DataEnvironment формы? В каком методе формы «дать команду TableUpdate()» (это, к тому же, не команда, а функция)? Стр. 220, подзаголовок «Добавление данных в поля типа Blob, Memo и General» набран более крупным шрифтом, чем окружающие подзаголовки, хотя по смыслу он «равнозначен» им. К стати, про поле типа Blob в этом разделе не упомянуто, хотя в заголовке оно и значится первым. Стр. 220, 2-ое предложение после этого заголовка: «Пустое поле типа Memo обозначено как “memo”» – наверное, стоит добавить: «в окне Browse или Edit». Стр. 220, ниже в том же абзаце, вместо «<Ctrl>+<W?» надо «<Ctrl>+<W>», т.е. вместо последней угловой скобки напечатался знак вопроса. Стр. 223, пример 1 – «GO TOP» не нужно, т.к. SCAN и так начнёт просматривать записи с начала таблицы. Стр. 226, вверху страницы 2-ой пункт списка: «...константу – она будет выводиться в каждой строке результата», – а в качестве примера дана не константа, а функция PI(). Стр. 232, последнее предложение: «…порядок оставленных в операторе фраз фиксирован» – наверное, надо наоборот: «не фиксирован». Стр. 233, внизу страницы, под заголовком «Примеры» – в обоих примерах нет «;» при переносе частей команд на другую строку. В первом примере вместо круглых скобок поставлены квадратные. ![]() |
||
Re: Очепятки в подлиннике VFP9 | |||
---|---|---|---|
dfr Сообщений: 254 Откуда: Барнаул |
стр.270, "Пример 1"
не определена переменная lcSQL перед использованием ее в функции SQLExec. И в "Примере 2" перепутаны строчки и опции в конце примера. Исправлено 1 раз(а). Последнее : dfr, 07.04.07 05:56 ![]() |
||
Re: Очепятки в подлиннике VFP9 | |||
---|---|---|---|
h.i.a. Сообщений: 4004 Откуда: Мурманск/Спб/Мск |
Страница 23. Таблица 1.10. Среди операторов «не равно» не указан #
Страница 33. Рис 1.2. Не корректный пример «сложного» индексного выражения. FoxPro не поддерживает значение индексного ключа переменной длины (Об этом факте тоже желательно упомянуть в книге). Предлагаю исправленный вариант: padr(alltrim(ctip)+alltrim(cname),80) Страница 38. Не отформатированы 2 примера с with…endwith Страница 187-188 Раздел «Индексация по сложным выражениям…» практически дословно повторяет такой же раздел на странице 32-33 Страница 238. Таблица 7.11. Двойное описание события DBC_BeforeModifyProc Страница 239. Таблица 7.11. Двойное описание события DBC_BeforeOpenTable Страница 244. Самое первое предложение: Впервые технология Rushmore представлена компанией Microsoft в FoxPro 2.0. Историческая неточность. FoxPro 2.0 еще был продуктом Fox Software. Microsoft к изобретению Rushmore не имеет никакого отношения. P.S. По мере нахождения ошибок буду дополнять список. ![]() |
||
Re: Очепятки в подлиннике VFP9 | |||
---|---|---|---|
h.i.a. Сообщений: 4004 Откуда: Мурманск/Спб/Мск |
Стр. 23. Таблица 1.10. Среди операторов «не равно» не указан #
Стр. 33. Рис 1.2. Не корректный пример «сложного» индексного выражения. FoxPro не поддерживает значение индексного ключа переменной длины (Об этом факте тоже желательно упомянуть в книге). Предлагаю исправленный вариант: padr(alltrim(ctip)+alltrim(cname),80) Стр. 38. Не отформатированы 2 примера с with…endwith Стр. 187-188 Раздел «Индексация по сложным выражениям…» практически дословно повторяет такой же раздел на странице 32-33 Стр. 225 Описание команды Select SQL «Результат выполнения запроса – новая таблица…». Неверное утверждение. Результатом может быть также курсор или массив. Более того, при отборе в таблицу или курсор, в ряде случаев на выходе мы можем получить исходную таблицу с наложенным фильтром (на эти грабли наступают даже ветераны форума, не говоря о новичках). 100% гарантией получения на выходе новой таблицы, является опция NOFILTER (во избежание плясок с бубном, эту опцию нужно по умолчанию добавлять в каждый запрос). Также, отсутствует описание еще одной полезной опции READWRITE. Стр. 238. Таблица 7.11. Двойное описание события DBC_BeforeModifyProc Стр. 239. Таблица 7.11. Двойное описание события DBC_BeforeOpenTable Стр. 244. Самое первое предложение: Впервые технология Rushmore представлена компанией Microsoft в FoxPro 2.0. Историческая неточность. FoxPro 2.0 еще был продуктом Fox Software. Microsoft к изобретению Rushmore не имеет никакого отношения. Стр. 408. Опечатка в примере предотвращения запуска формы в событии init: Return =.f. исправить на return .f. P.S. По мере нахождения ошибок буду дополнять список. ![]() |
||
Re: Очепятки в подлиннике VFP9 | |||
---|---|---|---|
DmitriyG Сообщений: 34 |
Ещё порция.
Стр. 234, 1-я строка (заголовок): «Команда UPDATE_SQL» – должно быть, наверное, «Команда UPDATE – SQL». Для этой команды не разъяснены опции «[FROM [FORCE] Table_List_Item [[,…] | [JOIN Table_List_Item]]]», хотя в шаблоне команды они приведены. Стр. 235, 2-я строка первого маркированного списка: «END TRANSACTION – закрывает блок транзакций, сохраняя все изменения текущего блока» – нужно поставить запятую после слова «транзакций», т.к. далее следует деепричастный оборот. Стр. 239, 3-я снизу строка таблицы: лишняя буква «y» в имени события «DBC_OpenData». В следующей строке – описание для события «DBC_CloseData» - наверное, должно быть «Происходит перед закрытием базы данных», а не «Закрывает открытую базу данных». Стр. 239, пример в конце страницы, переходящий на стр. 240: не указан параметр в обработчике DBC_AfterCloseTable. Далее, сначала вызывается функция RECNO(“users”), а в следующей строке проверяется USED(“users”) – как-то нелогично. Нет пояснений, поэтому не понятно, что демонстрирует этот пример: как не дать закрыть таблицу users или что-то ещё? Стр. 242, пример под цифрой 2: нет «;» при переносе части команды на след. строку. Стр. 242, описание функции REFRESH(): «восстанавливает данные представления…» – не совсем понятно, что значит «восстанавливает». Может, лучше сказать «обновляет», «заново считывает»? Стр. 244, 7-я строка снизу: «Выражение поиска не совпадает с индексным» - в начале этой строки, очевидно, должен быть маркер очередного (3-го) пункта списка "наиболее частых ошибок". Стр. 244, 2 последних предложения – предлагаю исключить, т.к. без дополнительных пояснений это утверждение совершенно непонятно. Либо как-то пояснить его. Стр. 246, 4-ый пункт маркированного списка: наверное, должно быть «возвращать обработанные данные серверу», а не «клиенту». Стр. 270, «Пример 2»: нет закрывающей круглой скобки «)» после списка полей во 2-ой строке примера. В конце 3-ей строки примера нет «;» при переносе части команды на след. строку. В предпоследней строке примера имя DSN выбрано неудачно: совпадающим с именем переменной lcCom, - это может запутать читателя. В последней строке примера, в функции SqlExec() 2-ой параметр, очевидно должен быть «m.lcCom», а не какое-то «a». Стр. 271, последняя строчка – не нужна (очевидно, вставилась сюда по ошибке). Стр. 288, перед пояснением «и получим заголовок соединения:» – лишняя команда «lnConnHandle=…», т.к. она же следует за этим пояснением, как, очевидно, и задумано. В самом же пояснении лучше заменить слово «заголовок» на слово «дескриптор». Стр. 350, 4-я строка снизу – нет замыкающей квадратной скобки «]». ![]() |
||
Re: Очепятки в подлиннике VFP9 | |||
---|---|---|---|
JS Сообщений: 12264 Откуда: Эстония |
Начну с того места, до которого дочитал, потом с начала книги.
Может страничку сделать для удобства, чтобы ребятам проще было искать по нашим записям. стр. 916 Вторая строка после Проигрыватель видеофайлов. заменить vfpplaier1 на упоминаемое имя класса vfpplayer1 ------------------ Knowledge is better than ignorance! Website: juri.foxhelp.eu Исправлено 1 раз(а). Последнее : JS, 18.04.07 18:57 ![]() |
||
Re: Очепятки в подлиннике VFP9 | |||
---|---|---|---|
Александр Жевелев Сообщений: 2724 Откуда: Новосибирск |
стр. 1018, Листинг 28.26
DEFINE CLASS alarm AS form видимо надо DEFINE CLASS alarmwindow AS form т.к. в следующем листинге 28.27(стр.1020) описывается класс на основе alarmwindow ![]() |
||
Re: Очепятки в подлиннике VFP9 | |||
---|---|---|---|
Коляныч Сообщений: 76 |
\glava12\shortcut_menu\rightclick.prg
или стр.437 книги Смущает конструкция: DO WHILE !EOF() ...... IF !EOF() SKIP ELSE EXIT EndIf EndDo Не "очепятка", правда ![]() ![]() |
||
Re: Очепятки в подлиннике VFP9 | |||
---|---|---|---|
piva Сообщений: 18655 Откуда: Курган |
Вполне допустимая в практике, другое дело что лучше так не делать, и дваигть указатель что бы сработал DO While, но очень даже в жизни допустимая конструкция
![]() ------------------ Часто бывает так, что есть над чем задуматься, а нечем. ![]() |
||
Re: Очепятки в подлиннике VFP9 | |||
---|---|---|---|
Коляныч Сообщений: 76 |
"FoxBase+ в подлиннике"... Эх, молодость моя ![]() По делу: \Glava08\perenos.prg представлена в ДОС-кодировке. \Glava05\Toolbar\toolbar_in_form.prg - ссылки на несуществующие .bmp Похоже все они в другом месте -\Glava25\Demo1\bmp Но книга правда - чудесная. Спасибо авторам! ![]() |
||
Re: Очепятки в подлиннике VFP9 | |||
---|---|---|---|
SoccerStudio Сообщений: 5055 Откуда: Подмосковье |
Добавлю до кучи. Хотя, может быть, это уже и известно.
Метод LoadFromStream()класса GdipImages написан с ошибкой. Природа ошибки банальна и понятна. Проявляется, стоит только лишь обратиться к этому методу. Также в методе CopyFromClipboard() этого же класса зачем-то затесался вызов функции MESSAGEBOX(). Исправлено 2 раз(а). Последнее : SoccerStudio, 26.08.07 14:33 ![]() |
||
Re: Очепятки в подлиннике VFP9 | |||
---|---|---|---|
katrin Сообщений: 81 Откуда: Йошкар-Ола |
Только сегодня купили на работу книгу. Можно внести свое пожелание новичку? На стр.17 при описании параметров процедур и функций - немного "масло масляное".
![]() |
||
Re: Очепятки в подлиннике VFP9 | |||
---|---|---|---|
katrin Сообщений: 81 Откуда: Йошкар-Ола |
Поясните, уважаемые гуру, может я не так поняла?
Стр. 104, абз. 2 сверху: «Если ваше приложение использует в качестве главного окна форму верхнего уровня, и вы запускаете модальную форму, свойство WindowType которой равно нулю (т.е. форма может выполняться только в главном окне VFP), то, если главное окно VFP невидимо, это повлечет зависание приложения.” Мои комментарии: 1. д.б. написано “ShowWindow которой равно нулю”, потому что для модальной формы как раз WindowType = 1 2. само это утверждение требует детализации или переформулировки: а) если модальная форма со свойством ShowWindow = 0 запускается после или из метода формы верхнего уровня (ShowWindow = 2), это не вызывает зависания приложения даже при невидимом окне VFP, т.к. возможно закрыть родительскую форму. б) зависание получается, если сразу запускается модальная форма со свойством ShowWindow = 0 при невидимом окне VFP, но тогда это уже не форма верхнего уровня по определению. ![]() |
||
Re: Очепятки в подлиннике VFP9 | |||
---|---|---|---|
DmitriyG Сообщений: 34 |
Во время отпуска дочитал книгу, и вот, выкладываю свою последнюю порцию опечаток, которые заметил. Надеюсь, это поможет исправить их в следующем издании книги.
Стр. 354, 8-я строка снизу – «…данные типа Blob отображаются как Blob, если значения отсутствуют…» – во 2-ом случае надо написать blob с маленькой буквы. Стр. 398, 4-я строка под рис. 11.24 – вместо «Remote» надо «Remove». Стр. 406, под заголовком «Добавление объектов в класс-контейнер»: - в строке, где приведён синтаксис команды - убрать квадратные скобки вокруг всей команды; - удалить следующие 2 строки, т.е. подзаголовок «Параметры:» (который здесь неуместен) и под ним повторный, но урезанный синтаксис команды; - в следующей строке – вместо «…который наследуется от класса ObjectName» надо «…который наследуется от класса ClassName2»; - в комментарии к слову WITH вместо «…которые вы добавляете в определение класса» поставить в единственном числе: «…который вы добавляете в определение класса». Стр. 408, 10-я строка снизу: после слов «Если вы хотите использовать переданные в метод параметры» - добавить слова «в других методах класса». Стр. 408, 7-я строка снизу: убрать знак равенства между «RETURN» и «.F.». Стр. 416, 15-я строка сверху: вместо «aAfter» надо «eAfter». Стр. 432, 17-я строка снизу: поставить запятую после слова «меню», а не после слова «после», т.е. сдвинуть запятую на 1 слово влево. Стр. 440, 5-я и 6-я строка сверху: вместо «входящим в контейнер» надо «входящих в контейнер». Стр. 440, 9-я строка сверху: вместо «<Имя объекта>.=[значение]» надо «<Имя объекта>.Свойство=значение» Стр. 440, 5-я строка снизу: вместо «Формируется в дизайнере меню…» надо «Формируемое в дизайнере меню…». Стр. 508, 6-я строка сверху: вместо «lcCRLF=CHR(13)+CHR(13)» надо «lcCRLF=CHR(13)+CHR(10)» Стр. 508, Листинг 15.1: 2-я строка листинга – то же самое, вместо CHR(13) надо CHR(10); 7-я строка листинга – вместо «=ALINES(laStringArray[1], laFields, CHR(13))» надо «=ALINES(laFields, laStringArray[m.i], CHR(9))», т.е. поменять местами 1-ый и 2-ой параметры, вместо индекса «1» поставить переменный индекс и вместо символа перевода строки указать символ табуляции. Стр. 509, 8-я строка сверху: вместо CHR(0) надо CHR(9). Стр. 513, последний из 4-ёх примеров применения функции FSEEK() вверху страницы, с комментарием «&& nBytes=110»: либо 3-ий параметр функции сделать не «2», а «1», либо комментарий должен быть «&& указатель за концом файла», либо отметить, что длина этого файла 90 байт. Стр. 520, 3-я строка сверху: неправильно согласован деепричастный оборот. Вместо «Зная структуру таблицы, вам не составит труда…» надо «Зная структуру таблицы, вы без труда сможете…» Стр. 564, 4-я строка после подзаголовка «Создание COM+–приложения»: вместо «…использоваться программа…» надо «…используется программа…». Стр. 613, 7-я строка сверху: пропущено слово «указателя» после слов «Для сохранения возвращаемого функцией GetArrayPtr». Стр. 616, 6-я строка после подзаголовка «Уничтожение объекта Microsoft Excel»: вместо «…до объект будет существовать…» надо «…то объект будет существовать…». Стр. 683, Листинг 19.16, 2-я строка: после hMem1 вместо точки надо запятую. Стр. 689, 8-я и 6-я строки снизу: дважды вместо «параметр Edit» надо «параметр File». Стр. 696, в абзаце в самой середине странице: вместо «…если код операции на удаление файлов» надо «…если код операции – не удаление файлов». Стр. 719, 3-я строка после заголовка главы: вместо «программы» надо «программ». Стр. 734, 4-я строка сверху: вместо «в двоичном представлении» надо «в 16-ричном представлении». Стр. 929, 5-я строка сверху: вместо «SoundEffect» надо «SoundEffects». Стр. 997, Листинг 28.2, 3-я строка листинга: вместо «SET PROCEDURE TO mybrow» надо «SET PROCEDURE TO My_dec». Стр. 998, Листинг 28.3, 1-я строка листинга: вместо «PROCEDURE My_Dec» лучше написать «* File My_dec.prg». 13-я строка листинга: значение зачем-то присваивается какой-то переменной m.pass1, но эта переменная больше нигде не используется. Стр. 1004, Пункт 9 «Как сделать ссылку»: вообще ничего не понятно. Где окажется ссылка? Для какого объекта приведены листинги методов MouseEnter и MouseLeave? Как реализуется переход по ссылке? Стр. 1005, 10-я строка сверху: лишний значок очередного пункта списка (это не новый пункт списка, а продолжение предыдущего). Стр. 1007, Листинг 28.13, 8-я строка листинга: «SET CLASSLIB TO animate» - не сказано, где взять файл Animate.vcx. Несколько претензий есть и по существу книги, но это, наверное, для другой темы. ![]() |
||
© 2000-2025 Fox Club  |