## Tcl9.0.3/Tk9.0.3 Documentation > Tcl Commands > prefix

### Tcl/Tk Applications | Tcl Commands | Tk Commands | [incr Tcl] Package Commands | SQLite3 Package Commands | TDBC Package Commands | tdbc::mysql Package Commands | tdbc::odbc Package Commands | tdbc::postgres Package Commands | tdbc::sqlite3 Package Commands | Thread Package Commands | Tcl C API | Tk C API | [incr Tcl] Package C API | TDBC Package C API

  NAME
    tcl::prefix — 接頭辞の合致の為の便益 Facilities for prefix matching
  構文 SYNOPSIS
  説明 DESCRIPTION
    ::tcl::prefix all table string
    ::tcl::prefix longest table string
    ::tcl::prefix match ?option ...? table string
      -exact
      -message string
      -error options
  用例 EXAMPLES
  SEE ALSO
  KEYWORDS

### NAME

tcl::prefix — 接頭辞の合致の為の便益 Facilities for prefix matching

### 構文 SYNOPSIS

::tcl::prefix all table string
::tcl::prefix longest table string
::tcl::prefix match ?option ...? table string

### 説明 DESCRIPTION

この説明文は文字列のリスト内の接頭辞を捜す命令を記述する｡次の命令が対応している: This document describes commands looking up a prefix in a list of strings. The following commands are supported:

::tcl::prefix all table string
  接頭辞 string で始まる table の内の全ての要素のリストを返す｡ Returns a list of all elements in table that begin with the prefix string.

::tcl::prefix longest table string
  前置辞 string で始まる table 内の全要素の､最長の共通前置辞を返す｡ Returns the longest common prefix of all elements in table that begin with the prefix string.

::tcl::prefix match ?option ...? table string
  もし string が table 内の要素の一つに等しいか､或は､正確に一つの要素の前置辞である場合､合致した要素が返される｡もしそうでない場合､結果は -error 選択肢に依存する｡(厳密にはこの副命令の操作には必要ではないが､この副命令を使う前に table は順並びに揃えて､不都合伝言文内に現れるリストが揃えられる様にしておく事が推奨される｡) 次の指示項目に対応している｡[訳註:用例の項目参照] If string equals one element in table or is a prefix to exactly one element, the matched element is returned. If not, the result depends on the -error option. (It is recommended that the table be sorted before use with this subcommand, so that the list of matches presented in the error message also becomes sorted, though this is not strictly necessary for the operation of this subcommand itself.) The following options are supported:

  -exact
    厳密合致のみ受付ける｡ Accept only exact matches.

  -message string
    非合致の際には不都合伝言文内に文字列 string を使う｡省略時設定は “任意” Use string in the error message at a mismatch. Default is “option”.

  -error options
    非合致が判った時に options が使われる｡もし options が空である場合､不具合は発生されず空文字列が返される｡そうでない場合､この options が不都合伝言文を作る時に任意附加 return として使われる｡省略時設定は “-水準 0” 設定に該当する｡使用例: もし “-error {-errorcode MyError -level 1}” が使われると､不都合がこのように生成されることになる: The options are used when no match is found. If options is empty, no error is generated and an empty string is returned. Otherwise the options are used as return options when generating the error message. The default corresponds to setting “-level 0”. Example: If “-error {-errorcode MyError -level 1}” is used, an error would be generated as:

        return -errorcode MyError -level 1 -code error \
               "ambiguous option ..."

### 用例 EXAMPLES

基本的使用法: Basic use:

    namespace import ::tcl::prefix
    prefix match {apa bepa cepa} apa
         → apa
    prefix match {apa bepa cepa} a
         → apa
    prefix match -exact {apa bepa cepa} a
         → bad option "a": must be apa, bepa, or cepa
    prefix match -message "switch" {apa ada bepa cepa} a
         → ambiguous switch "a": must be apa, ada, bepa, or cepa
    prefix longest {fblocked fconfigure fcopy file fileevent flush} fc
         → fco
    prefix all {fblocked fconfigure fcopy file fileevent flush} fc
         → fconfigure fcopy

簡略化した合致法: Simplifying option matching:

    array set opts {-apa 1 -bepa "" -cepa 0}
    foreach {arg val} $args {
        set opts([prefix match {-apa -bepa -cepa} $arg]) $val
    }

前置辞を運用する switch の生成: Creating a switch that supports prefixes:

    switch [prefix match {apa bepa cepa} $arg] {
        apa  { }
        bepa { }
        cepa { }
    }

### SEE ALSO

lsearch, namespace, string, Tcl_GetIndexFromObj

### KEYWORDS

prefix, table lookup
Copyright © 2008 Peter Spjuth <pspjuth(at)users.sourceforge.net>