КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Указатель файла и смещение
Всякий раз, когда вызывается функция readLine, в начале следующей строки автоматически помещается указатель файла. Смещение указателя файла — это число, обозначающее местоположение этого указателя относительно начала файла. При открытии файла его указатель помещается в начало файла с нулевым смещением. Несмотря на то что указатель файла устанавливается автоматически по мере чтения содержимого файла, его положением можно управлять, если в этом есть необходимось. Это делается с помощью функции seek. А смещение указателя файла определяется с помощью функции filePos. Для того чтобы воспользоваться функциями seek и filePos. выполните следующее упражнение. 1. Скопируйте файл seek.txt из каталога appendix на прилагаемом к этой книге CD-ROM в удобный для вас каталог на жестком лиске вашего компьютера Этот файл содержит ряд двузначных чисел, разделенных пробелом. 2. Введите в приемнике команд следующий фрагмент кода, используя соответствующий путь к файлу seek.txt: fs = openFile "c:\\3dsmax8\\scripts\\seek.txt" seek fs 6 readChars fs 2 В качестве результата в приемнике команд появится значение 53, которое означает, что двумя символами, прочитанными из данного файла на позиции 6, оказались числа 5 и 3. 3. Введите в приемнике команд следующую строку кода: filePos fs В качестве результата в приемнике команд появится значение 8. После чтения двух упомянутых выше символов указатель файла переместился на две позиции вперед и теперь его смещение равно 8. 4. Введите в приемнике команд следующую строку кода, чтобы закрыть файл: close fs Итак, для чтения из файла отдельных символов в приведенном выше упражнении была использована функция readChars. Если же воспользоваться функцией readLine, будет прочитана вся строка начиная с позиции 6. Для чтения единственного символа служит функция readchar. Приложение Для перемещения по файлу имеются еще две полезные функции: skipToNextLine и skipToString. В частности, функция skipToNextLine осуществляет переход к следующей строке, а функция skipToString — поиск конкретной строки символов и установку сразу же после нее указателя файла с соответствующим смещением. Функция skipToString оказывается полезной в том случае, если файл содержит дескрипторы — текстовые ограничители, которые вводятся в файл для того, чтобы упростить поиск в нем отдельных элементов. Для того чтобы применить функцию skiptoString к размеченному дескрипторами файлу, выполните следующее упражнение. 1. Установите 3dsMax в исходное состояние. 2. Скопируйте файл skiptostring.txt из каталога appendix, на прилагаемом к этой книге CD-ROM, в удобный для вас каталог на жестком диске вашего компьютера. 3. Откройте файл skiptostring.txt в текстовом редакторе WindowsNotepad. Он содержит следующее: $$hsegs 10 $$height 50 $$radius В трех первых строках находятся знаки денежной единицы, текстовое описание и число. Знаки денежной единицы служат в качестве дескрипторов, обеспечивающих правильное обнаружение текста в файле. Это очень короткий файл, но в более крупных файлах такие дескрипторы, как $$, помогают без труда находить многочисленные значения, текст и прочие элементы. 4. Закройте текстовый редактор WindowsNotepad. 5. Введите в окне редактора сценариев MAXScript Editor следующую строку кода, правильно указав в ней путь к файлу skiptostring.txt: fs = openFile "c:\\3dsmax8\\scripts\\skiptostring.txt" Указанный файл откроется. 6. Введите следующий фрагмент кода для чтения и поиска текста в открытом файле: skipToString fs "$$height" h = readValue fs seek fs 0 skipToString fs "$$hsegs" hs = readValue fs seek fs 0 skipToString fs "$$radius" r = readValue fs Функция skipToString обнаруживает дескриптор файла. Но она отнюдь не всегда начинает поиск с текущего смещения указателя файла. Поэтому сначала нужно установить указатель в начало файла с помощью функции seek, а затем начать поиск. Дескрипторы можно искать в любом порядке. Приложение 7. Закройте файл и создайте цилиндр, используя считанные из него данные: close fs c = cylinder radius: r height: h heightsegs: hs 8. Выполните сценарий. В этом сценарии считываются данные из файла и создается цилиндр с параметрами, указанными в файле. Несмотря на то что значение 20 радиуса находится в строке файла skiptostring.txt после текста $$radius, это значение читается в сценарии правильно.
Дата добавления: 2014-10-15; Просмотров: 1290; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |