Спецсимволы. Косые и обратные черты. Кавычки в кавычках

Для того, чтобы печатать разные непечатные символы командами print или fprint, в языке MEL используются спецсимволы.

Как вы уже знаете, спецсимвол «\п», встречающийся внутри строки, переводит печать на новую строку:

print “Hello \n, World!”;

Hello , World!

Спецсимвол «\t», печатает табуляцию:

print “Hello \t\t\t\t, World!”;

Hello , World!

Если вам надо поместить внутрь строки символ двойной кавычки, это тоже делается через обратную косую черту перед знаком кавычки, ведь просто поставив кавычку внутри строки, вы просто закончите строку и получите сообщение об ошибке. Таким образом «\”», тоже является спецсимволом.

print “Hello , \"World!\”

Hello , “World!”

Пытливые умы наверняка догадаются, что для того, чтобы напечатать или запихнуть внутрь строки обратную косую черту, надо перед ней поставить еще одну обратную косую черту, иначе MAYA будет пытаться трактовать символ, следующий за одиночной косой чертой, как спецсимвол. Двойная обратная косая черта трактуется как одиночная.

print “Hello , \\World!\\ “;

Hello , \World!\

Совет. Будьте предельно внимательны при написании строк, содержащих путь к файлу или имя папки. Либо пишите обычные косые черты типа «С:/temp/» либо двойные обратные: «c.WtempW».

Если после обратной косой черты стоит любой другой символ, кроме n, г, t, \ или “, то он не трактуется как спецсимвол и печатается без изменений, а косая черта при этом опускается.

print “c:\temp\fromPC\disk8\NewFolder\system\network\driveC\docs”; с: empfromPCdiskSNewFoldersystemetworkdriveCdocs

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

string $text = “Very very \

long text”; Для взрослых: использование команды fileBrowserDialog

На платформе Windows MAYA имеет продвинутую команду fileBrowserDialog, позволяющую более гибко работать со списками файлов и папок и осуществлять выбор файлов для дальнейшей работы.

Процедуру saveAll придется разбить на две процедуры, так как fileBrowserDialog требует объявления дополнительной процедуры, которая вызывается при нажатии на кнопку в окне файлового диалога. Выглядеть это будет так:

global proc saveAll () t

fileBrowserDialog -m 1 -fc “saveAttr” -an “Save_Attr” -ft “text”;

}

global proc saveAttr( string SfileName , string $fileType)

{

// no fileDialog here

int SfileNumber = 'fopen SfileName “w” '; fprint SfileNumber ('getAttr “pushField.magnitude” '+”\r\n”); fprint SfileNumber ('getAttr “pushField.attenuation” '+”\r\n”); fprint SfileNumber ('getAttr “pushField.maxDistance" W\n"); fprint SfileNumber ('getAttr “pullField.magnitude” V'\r\n”); fprint SfileNumber ('getAttr “pullField.attenuation” ' +”\r\n”); fprint SfileNumber ('getAttr “pullField.maxDistance” '+”\r\n”); fprint SfileNumber ('getAttr “dropShape. conserve" '+’’\r\n”); fclose SfileNumber;


⇐ вернуться назад | | далее ⇒