<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>tk_getSaveFile</title>
  </head>
  <body>
    <h1>tk_getSaveFile</h1>

    <p>Открывает окно диалога, в котором пользователь должен выбрать
      файл для того, чтобы открыть или сохранить его.</p>
    

    <h2><a name="СИНТАКСИС"></a>СИНТАКСИС</h2> 

    <pre>
      <strong>tk_getSaveFile</strong> <em>параметр значение...</em>
    </pre>

    <h2><a name="ОПИСАНИЕ"></a>ОПИСАНИЕ</h2> 

    <p>Процедура <strong>tk_getSaveFile</strong> открывает окно
      диалога, в котором пользователь должен выбрать файл для того,
      чтобы сохранить его.</p>

    <p>Команда <strong>tk_getSaveFile</strong> обычно связана с
      командой <strong>SaveAs</strong> меню <strong>File</strong>. При
      входе пользователя в уже существующий файл окно диалога
      предлагает пользователю подтвердить, что старый файл следует
      затереть.</p>

    <p>В качестве пар <em>аргумент-значение</em> в командной строке
      этих двух команд допускаются следующие варианты:</p>

    <dl>
      <dt><strong>-defaultextension</strong> <em>расширение</em></dt>

      <dd>Задает строку, которая автоматически приписывается к имени
	файла в случае, если имя, введенное пользователем, не имеет
	расширения. По умолчанию значение этого параметра пустая
	строка, т.е. имя файла не будет получать расширения ни в каком
	случае. На платформе Макинтош, где имена файлов не требуют
	расширения, этот параметр игнорируется.</dd>

      <dt><strong>-filetypes</strong> <em>списокТиповФайлов</em></dt>

      <dd> Если в файловом диалоге на конкретной платформе имеется окно
	списка типов файлов, то этот параметр задает содержимое
	списка. При выборе типа файла в списке выводятся только файлы
	этого типа. Если параметр не задан или его значение пустая
	строка, а также если на данной платформе не поддерживается
	окно списка типов файлов, то выводятся имена всех файлов,
	несмотря на их типы. Содержимое списка обсуждается ниже
	(см. &quot;<a href="#ОПИСАНИЕ_ОБРАЗЦОВ_ТИПОВ_ФАЙЛОВ">ОПИСАНИЕ
	ОБРАЗЦОВ ТИПОВ ФАЙЛОВ</a>&quot;).</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> представляет собой список образцов
      типов файлов. Каждый из образцов это список вида</p>

    <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>специальное расширение &quot;&quot;, под которое подходит
	любой файл без расширения (т.е. файл, имя которого не содержит
	точки);</li>

      <li>произвольная строка символов, среди которых нет символов
	маски (* и ?).</li>
    </ol>

    <p>Ввиду того, что на различных платформах используются различные
      правила соответствия, появление символов маски в расширениях не
      допускается, за исключением специального расширения
      &quot;*&quot;. Расширения, в которых нет точки (например,
      &quot;~&quot;), допустимы, но они могут работать не на всех
      платформах.</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_getSaveFile -filetypes $types]
      # Сохранить файл ...
      }
    </pre>
  </body>
</html>