<!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN> <html> <head> <title>tk_getOpenFile</title> </head> <body> <h1>tk_getOpenFile</h1> <p>Открывает окно диалога, в котором пользователь должен выбрать файл для того, чтобы открыть его.</p> <h2><a name=СИНТАКСИС></a>СИНТАКСИС</h2> <pre> <strong>tk_getOpenFile</strong> ?<em>параметр значение...</em>? </pre> <h2><a name=ОПИСАНИЕ></a>ОПИСАНИЕ</h2> <p>Процедура <strong>tk_getOpenFile</strong> открывает окно диалога, в котором пользователь должен выбрать файл для того, чтобы открыть его. </p> <p>Команда <strong>tk_getOpenFile</strong> обычно выполняется при вызове команды <strong>Open</strong> из меню <strong>File</strong>. Она позволяет лишь выбрать один из существующих файлов. Если пользователь вводит имя несуществующего файла, то окно диалога информирует его об ошибке и предлагает сделать другой выбор. Если приложение позволяет пользователю создавать файлы, то для этой цели должна быть предназначена специальная команда меню <strong>New</strong>.</p> <p>В качестве пар <em>аргумент-значение</em> в командной строке этих двух команд допускаются следующие варианты:</p> <dl> <dt><strong>-defaultextension</strong> <em>расширение</em></dt> <dd>Задает строку, которая автоматически приписывается к имени файла в случае, если имя, введенное пользователем, не имеет расширения. По умолчанию значение этого параметра пустая строка, т.е. имя файла не будет получать расширения ни в каком случае. На платформе Макинтош, где имена файлов не требуют расширения, этот параметр игнорируется.</dd> <dt><strong>-filetypes</strong> <em>списокТиповФайлов</em></dt> <dd>Если в файловом диалоге на конкретной платформе имеется окно списка типов файлов, то этот параметр задает содержимое списка. При выборе типа файла в списке выводятся только файлы этого типа. Если параметр не задан или его значение пустая строка, а также если на данной платформе не поддерживается окно списка типов файлов, то выводятся имена всех файлов, несмотря на их типы. Содержимое списка обсуждается ниже (см. "<a href=#ОПИСАНИЕ_ОБРАЗЦОВ_ТИПОВ_ФАЙЛОВ>ОПИСАНИЕ ОБРАЗЦОВ ТИПОВ ФАЙЛОВ</a>").</dd> <dt><strong>-initialdir</strong> <em>каталог</em></dt> <dd>Указывает, файлы какого каталога должны выводиться при появлении окна диалога. Если этот параметр не задан, то выводится список имен файлов в текущем каталоге процесса. На платформе Макинтош параметр <em>каталог</em> срабатывает не всегда. Это не результат ошибки. Этот эффект является следствием того, что панель управления General Controls на Макинтоше позволяет конечному пользователю подавить значение каталога приложения по умолчанию.</dd> <dt><strong>-initialfile</strong> <em>имяфайла</em></dt> <dd>Задает имя файла, которое должно выводиться в окне диалога при его появлении.</dd> <dt><strong>-parent</strong> <em>окно</em></dt> <dd>Делает <em>окно</em> логическим родителем файлового диалога. Окно файлового диалога выводится поверх родительского <em>окна</em>.</dd> <dt><strong>-title</strong> <em>строкаЗаголовка</em></dt> <dd>Задает строку, которая выводится в качестве заголовка в окне диалога. Если параметр не задан, то в окне выводится заголовок по умолчанию. На платформе Макинтош параметр игнорируется.</dd> </dl> <p>После того, как пользователь выбрал файл, команда <strong>tk_getSaveFile</strong> возвращают полное имя пути к этому файлу. Если пользователь прерывает выполнение операции, то обе команды возвращают пустую строку.</p> <h2><a name=ОПИСАНИЕ_ОБРАЗЦОВ_ТИПОВ_ФАЙЛОВ></a>ОПИСАНИЕ ОБРАЗЦОВ ТИПОВ ФАЙЛОВ</h2> <p>Значение <em>списокТиповФайлов</em> параметра <strong>-filetypes</strong> представляет собой список образцов типов файлов. Каждый из образцов это список вида <pre> имяТипа {расширение расширение...} {макТип макТип...} </pre> <p><em>имяТипа</em> это имя типа файлов; его значение это текстовая строка, которая попадает в список типов файлов. расширение это одно из расширений для файлов данного типа. <em>макТип</em> это четырехсимвольный тип файлов на платформе Макинтош. Список <em>макТипов</em> необязателен, и для приложений, которые не планируется использовать на платформе Макинтош, его можно опустить.</p> <p>Одно и то же <em>имяТипа</em> может встречаться в нескольких образцах; в этом случае все они описывают файлы одного типа и им соответствует одна строка в списке типов. При выборе такой строки в списке выводится список всех файлов, имена которых подходят хотя бы под один образец. Обычно каждому типу файлов соответствует в точности один образец. Использование нескольких образцов необходимо лишь для платформы Макинтош.</p> <p>На платформе Макинтош файл подходит под образец, если расширение его имени совпадает по крайней мере с одним из расширений И оно имеется по крайней мере в одном из значений параметра <em>макТип</em> в образце. Например, под образец исходных файлов на языке C подходят файлы с расширением <em>.c</em> И с макТипом <em>TEXT</em>. Для того, чтобы заменить конъюнкцию И дизъюнкцией <em>ИЛИ</em>, нужно вместо одной строки образца завести две строки, в одной из которых есть только расширения, а в другой только <em>макТипы</em>. Под образец файлового типа <em>GIF</em> подходят файлы с расширением <em>.gif</em> ИЛИ имеющие <em>макТип</em> GIFF.</p> <p>На платформах Unix и Windows файл подходит под образец файлового типа, если расширение его имени соответствует одному из расширений в образце. <em>макТип</em>ы игнорируются.</p> <h2><a name=ЗАДАНИЕ_РАСШИРЕНИЙ></a>ЗАДАНИЕ РАСШИРЕНИЙ</h2> <p>На платформах Unix и Macintosh соответствие образцам устанавливается обычным образом. На платформах Windows соответствие образцам устанавливается операционной системой. Возможными расширениями могут быть:</p> <ol> <li>специальное расширение *, под которое подходит любой файл;</li> <li>специальное расширение "", под которое подходит любой файл без расширения (т.е. файл, имя которого не содержит точки);</li> <li>произвольная строка символов, среди которых нет символов маски (* и ?).</li> </ol> <p>Ввиду того, что на различных платформах используются различные правила соответствия, появление символов маски в расширениях не допускается, за исключением специального расширения "*". Расширения, в которых нет точки (например, "~"), допустимы, но они могут работать не на всех платформах.</p> <h2><a name=ПРИМЕР></a>ПРИМЕР</h2> <pre> set types { {{Text Files} {.txt} } {{TCL Scripts} {.tcl} } {{C Source Files} {.c} TEXT} {{GIF Files} {.gif} } {{GIF Files} {} GIFF} {{All Files} * } } set filename [tk_getOpenFile -filetypes ] if { != ""} { # Открыть файл ... } </pre> </body> </html>