<?xml version="1.0" encoding="UTF-8"?>
<article id="Filters">
  <title>שימוש במסננים<indexterm>
      <primary>מסננים</primary>

      <seealso>מסנני קבצים</seealso>

      <seealso>מסיכות קבצים</seealso>

      <seealso>מסנני שורות</seealso>

      <seealso>מסנני החלפה</seealso>
    </indexterm></title>

  <para>כשאתה משווה קבצים או תיקיות, אתה יכול להשתמש במסננים כדי לצמצם את היקף
ההשוואה. זה יכול להיות שימושי כשאתה רוצה לפשט את תוצאת ההשוואה על ידי ביטול
הבדלים שאינך מעוניין בהם. מסננים הם כללים המבוססים על ביטויים
רגולריים. WinMerge משתמש במנוע הביטויים הרגולריים הפופולרי PCRE (ביטויים
רגולריים תואמי Perl).<indexterm>
      <primary>ביטויים רגולריים</primary>

      <secondary>מנוע נתמך</secondary>
    </indexterm><indexterm>
      <primary>מנוע ביטויים רגולריים PCRE</primary>
    </indexterm><indexterm>
      <primary>regexp</primary>

      <see>ביטויים רגולריים</see>
    </indexterm></para>

  <para>הפונקציה הבסיסית של סינון היא פשוטה: הערכת כל פריט שבדרך כלל יושווה (תיקייה,
קובץ או שורה בתוך קובץ), ואם ביטוי המסנן תואם לפריט היעד, החל את
המסנן. בהתאם לסוג המסנן, הפריט נכלל או לא נכלל בהשוואה.</para>

  <para>ישנם מסנני WinMerge שונים עבור פעולות השוואת תיקיות והשוואת קבצים:</para>

  <variablelist>
    <varlistentry>
      <term>השוואת תיקיות: מסיכות קבצים ומסנני קבצים<indexterm>
          <primary>השוואת תיקיות</primary>

          <secondary>סינון</secondary>
        </indexterm></term>

      <listitem>
        <para>You can specify files to include in a folder comparison by using simple file
masks, or, for more complex filtering, by applying multiple rules specified
in a file filter.</para>

        <para>קבצים ותיקיות שמסוננים מוסתרים בתוצאה כברירת מחדל, וזה בדרך כלל מה שאתה
רוצה. אתה יכול ללחוץ על <menuchoice> <guimenu>תצוגה</guimenu>
<guimenuitem>הצג פריטים שדולגו</guimenuitem> </menuchoice> כדי לבטל את
ההסתרה של פריטים מסוננים, אך חלון השוואת התיקיות מציג רק מידע מינימלי
עליהם. לדוגמה, אינך יכול לדעת אם קובץ שדולג הוא קובץ טקסט או בינארי.</para>
      </listitem>
    </varlistentry>

    <varlistentry>
      <term>השוואות קבצים: מסנני שורות ומסנני החלפה<indexterm>
          <primary>השוואת קבצים</primary>

          <secondary>סינון</secondary>
        </indexterm></term>

      <listitem>
        <para>מסנני שורות מוחלים רק על פעולות השוואת קבצים. הם מאפשרים לך להתעלם מהבדלי
שורה בודדים.</para>
        <para>מסנני החלפה מוחלים רק על פעולות השוואת קבצים. הם מחליפים את המחרוזות בגוש
ה-diff במחרוזות שצוינו, משווים אותן ומתעלמים מגוש ה-diff אם תוצאות ההחלפה
תואמות. הם שימושיים להתעלמות ממספר רב של שינויים לא מעניינים.</para>
      </listitem>
    </varlistentry>
  </variablelist>

  <section id="Filters_Mask">
    <title>שימוש במסיכות קבצים<indexterm>
        <primary>מסיכות קבצים</primary>
      </indexterm><indexterm>
        <primary>מסננים</primary>

        <secondary>מסיכות קבצים</secondary>
      </indexterm><indexterm>
        <primary>מסננים</primary>

        <secondary>בהשוואות תיקיות</secondary>
      </indexterm></title>

    <para>אתה יכול להשתמש במסיכות <glossterm>קבצים</glossterm> אחת או יותר שמציינות
סיומות קבצים שיכללו בהשוואת תיקיות. כל שאר הקבצים מושמטים מהבחירה שלך.</para>

    <section id="Filters_MaskApply">
      <title>הגדרה והחלה של מסיכות קבצים<indexterm>
          <primary>שורת פקודה</primary>

          <secondary>החלת מסיכות קבצים</secondary>
        </indexterm></title>

      <para>הגדר והחל מסיכת קבצים בזמן שאתה מפעיל את פעולת השוואת התיקיות שלך:</para>

      <itemizedlist>
        <listitem>
          <para>אם אתה משתמש בתיבת הדו-שיח בחר קבצים או תיקיות, לאחר בחירת התיקיות
<guilabel>1</guilabel> ו-<guilabel>2</guilabel>, הזן מסיכת קבצים אחת או יותר
בשדה <guilabel>מסנן</guilabel>. המסכות מוחלות כשאתה מתחיל את פעולת השוואת
התיקיות.</para>
        </listitem>

        <listitem>
          <para>אם אתה משתמש בשורת הפקודה של WinMerge, השתמש בדגל <option>-f</option> כדי
לציין מסיכות קבצים (ראה את הדוגמה בסעיף הבא).</para>
        </listitem>
      </itemizedlist>
    </section>

    <section id="Filters_MaskSyntax">
      <title>תחביר ודוגמה של מסיכת קבצים<indexterm>
          <primary>כללים</primary>

          <secondary>מסיכות קבצים</secondary>
        </indexterm><indexterm>
          <primary>מסננים</primary>

          <secondary>מסיכות קבצים</secondary>
        </indexterm><indexterm>
          <primary>ביטויים רגולריים</primary>

          <secondary>במסיכות קבצים</secondary>
        </indexterm></title>

      <para>You can specify file masks and extended filters using this format:</para>

      <synopsis>
        <replaceable>Filter1 of Group1</replaceable>;<replaceable>Filter2</replaceable> ...|<replaceable>Filter1 of Group2</replaceable>;<replaceable>Filter2</replaceable> ...|...
      </synopsis>

      <itemizedlist>
        <listitem><para>The <filename>|</filename> character separates filter groups and acts as a
logical AND.</para></listitem>
        <listitem><para>Filters within the same group are separated by <filename>;</filename> and
are interpreted with a logical OR.</para></listitem>
        <listitem><para>A file is included only if it matches at least one filter in each group.</para></listitem>
        <listitem>
          <para>To include a literal <filename>|</filename> (pipe) character in a regular
expression that is not enclosed in double quotes (such as in
<filename>f:</filename> or <filename>f!:</filename> filters), use
<filename>||</filename> instead.</para>
          <para>Example: <userinput>f:(abc||def)\.txt$</userinput></para>
        </listitem>
        <listitem>
          <para>Each filter (e.g., Filter1, Filter2) can be one of the following types:</para>
          <variablelist>
            <varlistentry><term><replaceable>*.ext</replaceable></term><listitem><para>File mask by extension (e.g., *.txt)</para></listitem></varlistentry>
            <varlistentry><term><replaceable>*.</replaceable></term><listitem><para>Files with no extension (e.g., README)</para></listitem></varlistentry>
            <varlistentry><term>!<replaceable>*.ext</replaceable></term><listitem><para>Exclude files matching the extension (Available since 2.16.19)</para></listitem></varlistentry>
            <varlistentry><term><replaceable>folder</replaceable>\</term><listitem><para>Target folders (must end with \) (Available since 2.16.19)</para></listitem></varlistentry>
            <varlistentry><term>!<replaceable>folder</replaceable>\</term><listitem><para>Exclude matching folders (Available since 2.16.19)</para></listitem></varlistentry>
            <varlistentry><term>f: <replaceable>regexp</replaceable></term><listitem><para>Match file names using regular expressions (Available since 2.16.49)</para></listitem></varlistentry>
            <varlistentry><term>f!: <replaceable>regexp</replaceable></term><listitem><para>Exclude files matching regex (Available since 2.16.49)</para></listitem></varlistentry>
            <varlistentry><term>d: <replaceable>regexp</replaceable></term><listitem><para>Match folder names using regex (Available since 2.16.49)</para></listitem></varlistentry>
            <varlistentry><term>d!: <replaceable>regexp</replaceable></term><listitem><para>Exclude folders matching regex (Available since 2.16.49)</para></listitem></varlistentry>
            <varlistentry><term>fe: <replaceable>expr</replaceable></term><listitem><para>Filter expression for files (e.g. fe:Size &lt; 1KB) (Available since
2.16.49)</para></listitem></varlistentry>
            <varlistentry><term>fe!: <replaceable>expr</replaceable></term><listitem><para>Filter expression to exclude files (Available since 2.16.49)</para></listitem></varlistentry>
            <varlistentry><term>de: <replaceable>expr</replaceable></term><listitem><para>Filter expression for folders (Available since 2.16.49)</para></listitem></varlistentry>
            <varlistentry><term>de!: <replaceable>expr</replaceable></term><listitem><para>Filter expression to exclude folders (Available since 2.16.49)</para></listitem></varlistentry>
            <varlistentry><term>pf: <replaceable>file filter name</replaceable></term><listitem><para>Apply a file filter by name (Available since 2.16.49)</para></listitem></varlistentry>
          </variablelist>
        </listitem>
      </itemizedlist>

      <example>
        <title>מסיכת קבצים</title>

        <para>בדוגמה זו של שורת הפקודה, פעולת השוואת התיקיות כוללת רק קבצים עם סיומות
<filename>xml</filename> או <filename>txt</filename>. כל שאר הקבצים מושמטים:</para>

        <para><userinput>WinMergeU c:\project\docs c:\temp /f *.xml;*.txt</userinput></para>
      </example>

      <example>
        <title>Excluding folders (since version 2.16.19)</title>

        <para>בדוגמה זו של שורת הפקודה, פעולת השוואת התיקיות אינה כוללת תיקיות
<filename>.git</filename> ו-<filename>.vs</filename>:</para>

        <para><userinput>WinMergeU c:\project\docs c:\temp /f !.git\;!.vs\</userinput></para>
      </example>

      <example>
        <title>Filter expression (since version 2.16.49)</title>

        <para>In this command-line example, the folder compare operation includes only
files with <filename>cpp</filename> or <filename>h</filename> extensions and
a file size less than 1KB:</para>

        <para><userinput>WinMergeU c:\project\docs c:\temp /f "*.cpp;*.h|fe:Size &lt;
1KB"</userinput></para>
      </example>
    </section>

    <section id="FilterExpression_Syntax">
      <title>Filter Expression Syntax</title>

      <para>
WinMerge allows powerful filtering using expressions that operate on file
metadata, contents, and comparison context. This section describes the
supported attributes, operators, functions, data types, and evaluation
rules.</para>

      <section id="FilterExpression_Literals">
        <title>Literals and Types</title>

        <para>Supported literal types include:</para>
        <itemizedlist>
          <listitem><para><emphasis>Boolean</emphasis>: <literal>true</literal>,
<literal>false</literal></para></listitem>
          <listitem><para><emphasis>Integer</emphasis>: 64-bit signed integers (e.g.,
<literal>1024</literal>, or with units like <literal>100KB</literal>,
<literal>7days</literal>)</para></listitem>
          <listitem><para><emphasis>Real (Double)</emphasis>: Floating-point numbers with optional
decimal or exponent (e.g., <literal>3.14</literal>, <literal>.5</literal>,
<literal>1e6</literal>)</para></listitem>
          <listitem><para><emphasis>String</emphasis>: Enclosed in double quotes (e.g.,
<literal>"example"</literal>)</para></listitem>
        </itemizedlist>

        <para>
Internally, values may be of the following types: Boolean, Integer, Real,
Timestamp, String, File Content, Array, or <literal>undefined</literal>.</para>
      </section>

      <section id="FilterExpression_Attributes">
        <title>Attributes</title>

        <para>
Filter expressions support a variety of attributes referring to file
metadata and content.  Attribute names are case-insensitive. You can
optionally specify which side of the comparison (Left, Right, or Middle) an
attribute applies to by using a prefix.</para>

        <section>
          <title>Core Attributes</title>
          <variablelist>
            <varlistentry>
              <term>Exists</term>
              <listitem><para>Returns <literal>true</literal> if the file exists, <literal>false</literal>
otherwise</para></listitem>
            </varlistentry>
            <varlistentry>
              <term>Name</term>
              <listitem><para>File name</para></listitem>
            </varlistentry>
            <varlistentry>
              <term>BaseName</term>
              <listitem><para>Returns the filename without extension. For example, "document.txt" returns
"document".</para></listitem>
            </varlistentry>
            <varlistentry>
              <term>Extension</term>
              <listitem><para>File extension</para></listitem>
            </varlistentry>
            <varlistentry>
              <term>IsFolder</term>
              <listitem><para>Returns true if the item is a folder/directory, false if it's a file.</para></listitem>
            </varlistentry>
            <varlistentry>
              <term>תיקייה</term>
              <listitem><para>Returns the relative path excluding the file name and base folder</para></listitem>
            </varlistentry>
            <varlistentry>
              <term>FullPath</term>
              <listitem><para>Returns the full path of the file</para></listitem>
            </varlistentry>
            <varlistentry>
              <term>Size</term>
              <listitem><para>File size</para></listitem>
            </varlistentry>
            <varlistentry>
              <term>Date</term>
              <listitem><para>Last modified timestamp</para></listitem>
            </varlistentry>
            <varlistentry>
              <term>DateStr</term>
              <listitem><para>Last modified date string in <literal>yyyy-MM-dd</literal> format</para></listitem>
            </varlistentry>
            <varlistentry>
              <term>CreationTime</term>
              <listitem><para>Creation date timestamp</para></listitem>
            </varlistentry>
            <varlistentry>
              <term>Attributes</term>
              <listitem><para>Returns the file attributes as an integer value</para></listitem>
            </varlistentry>
            <varlistentry>
              <term>AttrStr</term>
              <listitem>
                <para>Returns file attribute string. Examples: <literal>"R"</literal> for
Read-only, <literal>"H"</literal> for Hidden, <literal>"A"</literal> for
Archive, <literal>"S"</literal> for System file.</para>
              </listitem>
            </varlistentry>
          </variablelist>
        </section>

        <section>
          <title>File-only Attributes</title>
          <para>
The following attributes are available only for file comparison items.  When
used with folder items, the behavior is undefined.</para>

          <variablelist>
            <varlistentry>
              <term>Content</term>
              <listitem><para>Content of the file. Returns a FileContent-type value. Only
<literal>contains</literal> and <literal>recontains</literal> can be used
with this type.</para></listitem>
            </varlistentry>
          </variablelist>
        </section>

        <section>
          <title>Folder-only Attributes</title>
          <para>
The following attributes are available only for folder comparison items.
When used with file items, the behavior is undefined.</para>

          <variablelist>
            <varlistentry>
              <term>Files</term>
              <listitem><para>Number of files directly contained in the folder.</para></listitem>
            </varlistentry>
            <varlistentry>
              <term>RecursiveFiles</term>
              <listitem><para>Number of files contained in the folder, including all subfolders.</para></listitem>
            </varlistentry>
            <varlistentry>
              <term>Items</term>
              <listitem><para>Number of items (files and subfolders) directly contained in the folder.</para></listitem>
            </varlistentry>
            <varlistentry>
              <term>RecursiveItems</term>
              <listitem><para>Number of items (files and subfolders) contained in the folder, including
all subfolders.</para></listitem>
            </varlistentry>
            <varlistentry>
              <term>TotalSize</term>
              <listitem><para>Total size of all files directly contained in the folder, in bytes.</para></listitem>
            </varlistentry>
            <varlistentry>
              <term>RecursiveTotalSize</term>
              <listitem><para>Total size of all files contained in the folder, including all subfolders,
in bytes.</para></listitem>
            </varlistentry>
          </variablelist>
        </section>

        <section>
          <title>Side-Specific Prefixes</title>
          <para>
Prefixes may be added to specify the comparison side:</para>
          <itemizedlist>
            <listitem><para><emphasis>Left</emphasis>: Applies to the file on the left side (e.g.,
<literal>LeftSize</literal>)</para></listitem>
            <listitem><para><emphasis>Right</emphasis>: Applies to the file on the right side (e.g.,
<literal>RightDate</literal>)</para></listitem>
            <listitem><para><emphasis>Middle</emphasis>: Applies to the middle file in 3-way comparison
(e.g., <literal>MiddleName</literal>)</para></listitem>
          </itemizedlist>

          <para>
Attributes without a prefix (e.g., <literal>Size</literal>) return an array
of values from all available sides (Left, Middle, Right).</para>
        </section>

        <section>
          <title>Windows Property Attributes</title>
          <para>
These attributes provide access to Windows Property System values, such as
metadata defined by the Windows Property System schema (e.g.,
<literal>System.Title</literal>, <literal>System.FileOwner</literal>,
<literal>System.Image.HorizontalResolution</literal>).</para>

          <variablelist>
            <varlistentry>
              <term>Prop</term>
              <listitem>
                <para>
Returns an array of property values (Left, Middle, Right) for the specified
canonical property name.  Example: <literal>prop("System.Title")</literal></para>
              </listitem>
            </varlistentry>

            <varlistentry>
              <term>LeftProp</term>
              <listitem>
                <para>
Property value of the left-side file. Example:
<literal>leftprop("System.FileOwner")</literal></para>
              </listitem>
            </varlistentry>

            <varlistentry>
              <term>MiddleProp</term>
              <listitem>
                <para>Property value of the middle file (in 3-way comparison).</para>
              </listitem>
            </varlistentry>

            <varlistentry>
              <term>RightProp</term>
              <listitem>
                <para>Property value of the right-side file.</para>
              </listitem>
            </varlistentry>
          </variablelist>
        </section>

        <section id="FilterExpression_ArrayEvaluation">
          <title>Array Evaluation</title>

          <para>
Attributes without a side prefix (e.g., <literal>Size</literal>) return an
array of values from all available sides (Left, Middle, Right). When
applying an operator to such arrays, behavior differs depending on whether
the comparison is with a scalar or another array.</para>

          <section id="FilterExpression_ArrayVsScalar">
            <title>Array vs Scalar</title>
            <para>
When comparing an array to a scalar, the operation is applied to each array
element individually.  This results in a boolean array. If any element in
this boolean array is <literal>true</literal>, the overall expression
evaluates to <literal>true</literal>. Otherwise, it evaluates to
<literal>false</literal>.</para>
            <example>
              <title>דוגמה</title>
<programlisting>[3, 5, 8] &gt; 6 -> [false, false, true] -> true</programlisting></example>
          </section>

          <section id="FilterExpression_ArrayVsArray">
            <title>Array vs Array</title>
            <para>
When comparing two arrays, the behavior depends on the operator:</para>
            <itemizedlist>
              <listitem>
                <para>
For <literal>=</literal> and <literal>!=</literal>: The arrays must have the
same length.  The result is a single boolean value, not an array.
<literal>=</literal> returns <literal>true</literal> only if all elements
are equal.  <literal>!=</literal> returns <literal>true</literal> if any
element differs.</para>
              </listitem>
              <listitem>
                <para>
For all other operators (e.g., <literal>&gt;</literal>,
<literal>&lt;</literal>): the operation is applied element-wise, producing a
boolean array.  The final result of the expression is
<literal>true</literal> if any element in the boolean array is
<literal>true</literal>, and <literal>false</literal> if all elements are
<literal>false</literal>.</para>
              </listitem>
            </itemizedlist>

            <example>
              <title>Examples</title>
<programlisting>[2, 4] = [2, 4] -> true</programlisting> <programlisting>[2, 4] != [2, 5] -> true (because 4 != 5)</programlisting> <programlisting>[3, 5, 8] &gt; [6, 4, 2]
 -> [false, true, true]
 -> true (because at least one comparison is true)
              </programlisting></example>
          </section>

          <section id="FilterExpression_ArraySummary">
            <title>Summary</title>
            <itemizedlist>
              <listitem>
                <para>
Array vs scalar comparisons produce a boolean array.  The overall expression
result is <literal>true</literal> if at least one element is
<literal>true</literal>.</para>
              </listitem>
              <listitem>
                <para>
Array vs array with <literal>=</literal> or <literal>!=</literal> returns a
single boolean value.</para>
              </listitem>
              <listitem>
                <para>
Array vs array with other operators produces a boolean array.  The final
result is <literal>true</literal> if any element is <literal>true</literal>.</para>
              </listitem>
            </itemizedlist>
          </section>
        </section>
      </section>

      <section id="FilterExpression_Operators">
        <title>Operators</title>

        <para>
All string comparison operators (such as <literal>=</literal>,
<literal>!=</literal>, <literal>like</literal>, <literal>matches</literal>,
<literal>contains</literal>, and <literal>recontains</literal>) are
currently case-insensitive.</para>

        <variablelist>
          <varlistentry>
            <term><literal>&lt;</literal>, <literal>&lt;=</literal>, <literal>&gt;</literal>,
<literal>&gt;=</literal></term>
            <listitem><para>Numeric, timestamp, or string comparison</para></listitem>
          </varlistentry>
          <varlistentry>
            <term><literal>=</literal></term>
            <listitem><para>Equality comparison</para></listitem>
          </varlistentry>
          <varlistentry>
            <term><literal>!=</literal></term>
            <listitem><para>Inequality comparison</para></listitem>
          </varlistentry>
          <varlistentry>
            <term><literal>+</literal>, <literal>-</literal>, <literal>*</literal>,
<literal>/</literal>, <literal>%</literal></term>
            <listitem>
              <para>
Arithmetic operators. <literal>+</literal> and <literal>-</literal> perform
addition and subtraction. <literal>*</literal> and <literal>/</literal>
perform multiplication and division. <literal>%</literal> is the modulo
operator (remainder).</para>
            </listitem>
          </varlistentry>
          <varlistentry>
            <term><literal>and</literal>, <literal>or</literal>, <literal>not</literal></term>
            <listitem><para>Logical operators</para></listitem>
          </varlistentry>
          <varlistentry>
            <term><literal>like</literal></term>
            <listitem>
              <para>Wildcard string match</para>
              <para>You can also use <literal>not like</literal> to perform the inverse match.</para>
            </listitem>
          </varlistentry>
          <varlistentry>
            <term><literal>matches</literal></term>
            <listitem>
              <para>Matches regular expressions</para>
              <para>You can also use <literal>not matches</literal> to perform the inverse
match.</para>
            </listitem>
          </varlistentry>
          <varlistentry>
            <term><literal>contains</literal></term>
            <listitem>
              <para>Checks if a string contains a substring</para>
              <para>You can also use <literal>not contains</literal> to check for absence of the
substring.</para>
            </listitem>
          </varlistentry>
          <varlistentry>
            <term><literal>recontains</literal></term>
            <listitem>
              <para>Checks if any substring matches a regular expression</para>
              <para>You can also use <literal>not recontains</literal> to ensure no match
exists.</para>
            </listitem>
          </varlistentry>
        </variablelist>
      </section>

      <section id="FilterExpression_Functions">
        <title>Functions</title>

        <variablelist>
          <varlistentry>
            <term>lineCount(<replaceable>content</replaceable>)</term>
            <listitem><para>Returns the number of lines in the file content or file content array as an
<literal>Integer</literal>. If <replaceable>content</replaceable> is an
array, the result is an integer array. Example:
<literal>lineCount(Content)</literal></para></listitem>
          </varlistentry>
          <varlistentry>
            <term>sublines(<replaceable>content</replaceable>,
<replaceable>start</replaceable>, <replaceable>count</replaceable>)</term>
            <listitem>
              <para>
Extracts the specified number of lines starting from the given line index in
the file content or file content array, and returns them as a single
concatenated string.  If <replaceable>content</replaceable> is an array, the
result is an array of strings.</para>
            </listitem>
          </varlistentry>
          <varlistentry>
            <term>strlen(<replaceable>source</replaceable>)</term>
            <listitem><para>Returns the length of the string as an <literal>Integer</literal>. If
<replaceable>source</replaceable> is a string array, the result is an
integer array. Example: <literal>strlen(Name)</literal></para></listitem>
          </varlistentry>
          <varlistentry>
            <term>substr(<replaceable>source</replaceable>, <replaceable>start</replaceable>,
<replaceable>count</replaceable>)</term>
            <listitem><para>Returns a specific range of text from the <emphasis>string or string
array</emphasis> as a <literal>String</literal>. If
<replaceable>source</replaceable> is a string array, the result is a string
array. Example: <literal>substr(Name, 0, 3)</literal></para></listitem>
          </varlistentry>
          <varlistentry>
            <term>replace(str, from, to)</term>
            <listitem>
              <para>
Replaces all occurrences of the string <replaceable>from</replaceable> with
<replaceable>to</replaceable>.  If <replaceable>str</replaceable> is an
array, the result is an array of strings with replacements applied.
Example: <literal>replace(name, ".bak", ".txt")</literal></para>
            </listitem>
          </varlistentry>
          <varlistentry>
            <term>regexReplace(str, pattern, replacement)</term>
            <listitem>
              <para>
Replaces all matches of the regular expression pattern with the replacement
string.  Supports backreferences ($1, $2, etc.) in the replacement string.
If <replaceable>str</replaceable> is an array, the result is an array of
strings with replacements applied.  Example: <literal>regexReplace(name,
"^(\\w+)_(\\w+)$", "$2_$1")</literal> swaps words separated by underscore.</para>
            </listitem>
          </varlistentry>
          <varlistentry>
            <term>normalizeUnicode(str[, form])</term>
            <listitem>
              <para>
Normalizes Unicode string. The optional form parameter specifies the
normalization form: "NFC" or "C" (default), "NFD" or "D", "NFKC" or "KC",
"NFKD" or "KD".  Can also use numeric forms: 1=NFC, 2=NFD, 5=NFKC, 6=NFKD.
If <replaceable>str</replaceable> is an array, the result is an array of
normalized strings.  Example: <literal>normalizeUnicode(name,
"NFC")</literal></para>
            </listitem>
          </varlistentry>
          <varlistentry>
            <term>
toLower(<replaceable>str</replaceable>)</term>
            <listitem>
              <para>
Converts all characters in the string to lowercase.  If
<replaceable>str</replaceable> is an array, the result is an array of
lowercase strings.  Example: <literal>toLower("Hello World")</literal>
returns <literal>"hello world"</literal></para>
            </listitem>
          </varlistentry>
          <varlistentry>
            <term>
toUpper(<replaceable>str</replaceable>)</term>
            <listitem>
              <para>
Converts all characters in the string to uppercase.  If
<replaceable>str</replaceable> is an array, the result is an array of
uppercase strings.  Example: <literal>toUpper("Hello World")</literal>
returns <literal>"HELLO WORLD"</literal></para>
            </listitem>
          </varlistentry>
          <varlistentry>
            <term>
toHalfWidth(<replaceable>str</replaceable>)</term>
            <listitem>
              <para>
Converts full-width characters to half-width characters.  Primarily used for
converting full-width alphanumeric and katakana characters to half-width.
If <replaceable>str</replaceable> is an array, the result is an array of
converted strings.</para>
            </listitem>
          </varlistentry>
          <varlistentry>
            <term>
toFullWidth(<replaceable>str</replaceable>)</term>
            <listitem>
              <para>
Converts half-width characters to full-width characters.  Primarily used for
converting half-width alphanumeric and katakana characters to full-width.
If <replaceable>str</replaceable> is an array, the result is an array of
converted strings.</para>
            </listitem>
          </varlistentry>
          <varlistentry>
            <term>
toKatakana(<replaceable>str</replaceable>)</term>
            <listitem>
              <para>
Converts hiragana characters to katakana.  Non-hiragana characters remain
unchanged.  If <replaceable>str</replaceable> is an array, the result is an
array of converted strings.</para>
            </listitem>
          </varlistentry>
          <varlistentry>
            <term>
toHiragana(<replaceable>str</replaceable>)</term>
            <listitem>
              <para>
Converts katakana characters to hiragana.  Non-katakana characters remain
unchanged.  If <replaceable>str</replaceable> is an array, the result is an
array of converted strings.</para>
            </listitem>
          </varlistentry>
          <varlistentry>
            <term>
toSimplifiedChinese(<replaceable>str</replaceable>)</term>
            <listitem>
              <para>
Converts traditional Chinese characters to simplified Chinese characters.
Characters that don't have a simplified form remain unchanged.  If
<replaceable>str</replaceable> is an array, the result is an array of
converted strings.</para>
            </listitem>
          </varlistentry>
          <varlistentry>
            <term>
toTraditionalChinese(<replaceable>str</replaceable>)</term>
            <listitem>
              <para>
Converts simplified Chinese characters to traditional Chinese characters.
Characters that don't have a traditional form remain unchanged.  If
<replaceable>str</replaceable> is an array, the result is an array of
converted strings.</para>
            </listitem>
          </varlistentry>
          <varlistentry>
            <term>now()</term>
            <listitem><para>Returns the current date and time as a <literal>Timestamp</literal> value.</para></listitem>
          </varlistentry>
          <varlistentry>
            <term>today()</term>
            <listitem><para>Returns today's date as a <literal>Timestamp</literal> value representing
<literal>00:00:00.000</literal> at the start of the day.</para></listitem>
          </varlistentry>
          <varlistentry>
            <term>startOfWeek(<replaceable>timestamp</replaceable>)</term>
            <listitem><para>Returns the first day of the week, which is always Sunday regardless of
locale.</para></listitem>
          </varlistentry>
          <varlistentry>
            <term>startOfMonth(<replaceable>timestamp</replaceable>)</term>
            <listitem><para>Returns the first day of the month.</para></listitem>
          </varlistentry>
          <varlistentry>
            <term>startOfYear(<replaceable>timestamp</replaceable>)</term>
            <listitem><para>Returns the first day of the year.</para></listitem>
          </varlistentry>
          <varlistentry>
            <term>toDateStr(<replaceable>timestamp</replaceable>)</term>
            <listitem><para>Converts the given timestamp to a date string in
<literal>yyyy-MM-dd</literal> format. If
<replaceable>timestamp</replaceable> is a timestamp array, the result is a
string array.</para></listitem>
          </varlistentry>
          <varlistentry>
            <term>abs(<replaceable>value</replaceable>)</term>
            <listitem><para>Returns the absolute value of the <emphasis>integer or integer
array</emphasis>. If <replaceable>value</replaceable> is an integer array,
the result is an integer array.</para></listitem>
          </varlistentry>
          <varlistentry>
            <term>allof(<replaceable>booleans</replaceable>)</term>
            <listitem><para>Returns <literal>true</literal> if all elements in the <emphasis>boolean
array</emphasis> satisfy the condition.</para></listitem>
          </varlistentry>
          <varlistentry>
            <term>allequal(<replaceable>array</replaceable>)</term>
            <listitem><para>Returns <literal>true</literal> if all values in the array are equal.</para></listitem>
          </varlistentry>
          <varlistentry>
            <term>isWithin(<replaceable>value</replaceable>, <replaceable>min</replaceable>,
<replaceable>max</replaceable>)</term>
            <listitem>
              <para>
Returns <literal>true</literal> if <replaceable>value</replaceable> is
within the range <literal>[min, max]</literal> (inclusive on both ends).
Supports integers, floating-point numbers, timestamps, and strings
(case-insensitive comparison).  If <replaceable>value</replaceable> is an
array, the result is a boolean array with each element checked individually.</para>
              <para>Examples:</para>
              <itemizedlist>
                <listitem><para><literal>isWithin(5, 1, 10)</literal> returns <literal>true</literal></para></listitem>
                <listitem><para><literal>isWithin(Size, 1KB, 10MB)</literal> checks if any file size is
between 1KB and 10MB</para></listitem>
                <listitem><para><literal>isWithin(Date, today() - 7days, today())</literal> checks if file
was modified within the last week</para></listitem>
                <listitem><para><literal>allof(isWithin(Size, 1KB, 10MB))</literal> checks if all file sizes
are between 1KB and 10MB</para></listitem>
              </itemizedlist>
            </listitem>
          </varlistentry>
          <varlistentry>
            <term>inRange(<replaceable>value</replaceable>, <replaceable>min</replaceable>,
<replaceable>max</replaceable>)</term>
            <listitem>
              <para>
Returns <literal>true</literal> if <replaceable>value</replaceable> is
within the range <literal>[min, max)</literal> (inclusive on the lower
bound, exclusive on the upper bound).  Supports integers, floating-point
numbers, timestamps, and strings (case-insensitive comparison).  If
<replaceable>value</replaceable> is an array, the result is a boolean array
with each element checked individually.</para>
              <para>Examples:</para>
              <itemizedlist>
                <listitem><para><literal>inRange(5, 1, 10)</literal> returns <literal>true</literal></para></listitem>
                <listitem><para><literal>inRange(10, 1, 10)</literal> returns <literal>false</literal></para></listitem>
                <listitem><para><literal>inRange(Size, 0, 1MB)</literal> checks if any file size is less
than 1MB</para></listitem>
                <listitem><para><literal>anyof(inRange(Date, startOfMonth(today()), today()))</literal>
checks if any file was modified this month (excluding today)</para></listitem>
              </itemizedlist>
            </listitem>
          </varlistentry>
          <varlistentry>
            <term>logError(<replaceable>value1</replaceable>,
<replaceable>value2</replaceable>, ...),
logWarn(<replaceable>value1</replaceable>,
<replaceable>value2</replaceable>, ...),
logInfo(<replaceable>value1</replaceable>,
<replaceable>value2</replaceable>, ...)</term>
            <listitem>
              <para>
Outputs the concatenated string representation of all arguments to the log
(at error, warning, or information level respectively), separated by spaces,
and returns the last argument value.  These functions are useful for
debugging filter expressions.</para>
              <para>Examples (using return value):</para>
              <itemizedlist>
                <listitem><para><literal>logInfo("File size:", Size) > 1MB</literal> - logs the file size(s)
and checks if greater than 1MB</para></listitem>
                <listitem><para><literal>logWarn("Processing:", Name) like "*.tmp"</literal> - logs the file
name(s) and checks if it's a temporary file</para></listitem>
                <listitem><para><literal>Size > 1KB and logInfo("Large file:", Name) contains
"test"</literal> - logs only when size condition is true, then checks name</para></listitem>
              </itemizedlist>
            </listitem>
          </varlistentry>
          <varlistentry>
            <term>if(<replaceable>condition</replaceable>,
<replaceable>trueValue</replaceable>, <replaceable>falseValue</replaceable>)</term>
            <listitem>
              <para>
Returns <replaceable>trueValue</replaceable> if
<replaceable>condition</replaceable> evaluates to true, otherwise returns
<replaceable>falseValue</replaceable>.  This function performs short-circuit
evaluation (it only evaluates the branch that will be returned).</para>
              <para>Examples:</para>
              <itemizedlist>
                <listitem><para><literal>if(Size > 1MB, "large", "small")</literal> - returns "large" or
"small" based on file size</para></listitem>
                <listitem><para><literal>if(Extension = "txt", "text file", "other file")</literal> -
classifies files by extension</para></listitem>
                <listitem><para><literal>if(Exists, Size, 0)</literal> - returns file size or 0 if file
doesn't exist</para></listitem>
              </itemizedlist>
            </listitem>
          </varlistentry>
          <varlistentry>
            <term>ifEach(<replaceable>conditionArray</replaceable>,
<replaceable>trueValue</replaceable>, <replaceable>falseValue</replaceable>)</term>
            <listitem>
              <para>
Element-wise conditional selection. For each element in
<replaceable>conditionArray</replaceable>, returns the corresponding element
from <replaceable>trueValue</replaceable> if the condition is true,
otherwise returns the corresponding element from
<replaceable>falseValue</replaceable>.  If
<replaceable>trueValue</replaceable> or
<replaceable>falseValue</replaceable> is a scalar, it is broadcast to all
elements.</para>
              <para>Examples:</para>
              <itemizedlist>
                <listitem><para><literal>ifEach(Size &gt; 1MB, "large", "small")</literal> - returns array
of "large"/"small" labels for each file</para></listitem>
                <listitem><para><literal>ifEach(array(true, false, true), array("a", "b", "c"), array("x",
"y", "z"))</literal> - returns <literal>array("a", "y", "c")</literal></para></listitem>
                <listitem><para><literal>anyof(ifEach(Size &gt; 100KB, Size &lt; 10MB, false))</literal> -
checks if any file is between 100KB and 10MB</para></listitem>
              </itemizedlist>
            </listitem>
          </varlistentry>
          <varlistentry>
            <term>choose(<replaceable>index</replaceable>, <replaceable>value0</replaceable>,
<replaceable>value1</replaceable>, ...)</term>
            <listitem>
              <para>
Selects a value from the arguments based on
<replaceable>index</replaceable>.  If <replaceable>index</replaceable> is 0,
returns <replaceable>value0</replaceable>; if 1, returns
<replaceable>value1</replaceable>, etc.  Negative indices are clamped to
0. Indices beyond the last value return the last value.</para>
              <para>Examples:</para>
              <itemizedlist>
                <listitem><para><literal>choose(0, "first", "second", "third")</literal> - returns "first"</para></listitem>
                <listitem><para><literal>choose(DiffCode % 3, "equal", "different", "unique")</literal> -
maps diff codes to labels</para></listitem>
                <listitem><para><literal>choose(5, "a", "b", "c")</literal> - returns "c" (out of bounds,
returns last value)</para></listitem>
              </itemizedlist>
            </listitem>
          </varlistentry>
          <varlistentry>
            <term>chooseEach(<replaceable>indexArray</replaceable>,
<replaceable>value0</replaceable>, <replaceable>value1</replaceable>, ...)</term>
            <listitem>
              <para>
Element-wise value selection. For each index in
<replaceable>indexArray</replaceable>, selects the corresponding value from
the remaining arguments.  If <replaceable>indexArray</replaceable> is a
scalar, behaves like <literal>choose</literal>.</para>
              <para>Examples:</para>
              <itemizedlist>
                <listitem><para><literal>chooseEach(array(0, 1, 2), "a", "b", "c")</literal> - returns
<literal>array("a", "b", "c")</literal></para></listitem>
                <listitem><para><literal>chooseEach(array(0, 0, 1), "x", "y")</literal> - returns
<literal>array("x", "x", "y")</literal></para></listitem>
                <listitem><para><literal>chooseEach(array(2, 0, 1), "first", "second", "third")</literal> -
returns <literal>array("third", "first", "second")</literal></para></listitem>
              </itemizedlist>
            </listitem>
          </varlistentry>
          <varlistentry>
            <term>andEach(<replaceable>value1</replaceable>,
<replaceable>value2</replaceable>),
orEach(<replaceable>value1</replaceable>,
<replaceable>value2</replaceable>),
notEach(<replaceable>value</replaceable>)</term>
            <listitem>
              <para>
Element-wise logical operations. These functions operate on booleans,
boolean arrays, or a combination of both:</para>
              <itemizedlist>
                <listitem><para><literal>andEach</literal> - Logical AND operation</para></listitem>
                <listitem><para><literal>orEach</literal> - Logical OR operation</para></listitem>
                <listitem><para><literal>notEach</literal> - Logical NOT operation (single argument)</para></listitem>
              </itemizedlist>
              <para>
When arguments are scalars, returns a scalar boolean result.  When one
argument is an array and the other is a scalar, the scalar is broadcast to
all elements.  When both arguments are arrays, performs element-wise
operation.</para>
              <para>Examples:</para>
              <itemizedlist>
                <listitem><para><literal>andEach(Size &gt; 1KB, Size &lt; 1MB)</literal> - files between 1KB
and 1MB</para></listitem>
                <listitem><para><literal>orEach(Extension = "txt", Extension = "log")</literal> - txt or log
files</para></listitem>
                <listitem><para><literal>notEach(Exists)</literal> - files that don't exist</para></listitem>
                <listitem><para><literal>allof(andEach(Exists, Size &gt; 0))</literal> - all files exist
with non-zero size</para></listitem>
                <listitem><para><literal>anyof(notEach(Size &gt; 1MB))</literal> - any file 1MB or smaller</para></listitem>
              </itemizedlist>
            </listitem>
          </varlistentry>
        </variablelist>
      </section>

      <section id="FilterExpression_Units">
        <title>Units</title>
        <para>File sizes support these suffixes:</para>
        <simplelist type="inline">
          <member>KB</member>
          <member>MB</member>
          <member>GB</member>
          <member>TB</member>
        </simplelist>
        <para>Time durations support these suffixes:</para>
        <simplelist type="inline">
          <member>weeks</member><member>week</member><member>w</member>
          <member>days</member><member>day</member><member>d</member>
          <member>hours</member><member>hour</member><member>hr</member><member>h</member>
          <member>minutes</member><member>minute</member><member>min</member><member>m</member>
          <member>seconds</member><member>second</member><member>sec</member><member>s</member>
          <member>milliseconds</member><member>millisecond</member><member>msec</member><member>ms</member>
        </simplelist>
      </section>

      <section id="FilterExpression_Examples">
        <title>Examples</title>
        <itemizedlist>
          <listitem><para><literal>Size &lt; 10KB</literal> - Any side's size is less than 10KB</para></listitem>
          <listitem><para><literal>LeftSize &gt;= 10MB</literal> - Left side file is at least 10MB</para></listitem>
          <listitem><para><literal>allof(Size &lt; 1MB)</literal> - All sides are under 1MB</para></listitem>
          <listitem><para><literal>abs(LeftSize - RightSize) &lt; 1KB</literal> - Size difference is
small</para></listitem>
          <listitem><para><literal>DateStr = "2025-07-20"</literal> - File was last modified on that
date</para></listitem>
          <listitem><para><literal>Date &gt;= today()</literal> - Modified today or later</para></listitem>
          <listitem><para><literal>isWithin(Date, today() - 7days, today())</literal> - File modified
within the last week</para></listitem>
          <listitem><para><literal>inRange(Size, 1KB, 10MB)</literal> - File size is between 1KB
(inclusive) and 10MB (exclusive)</para></listitem>
          <listitem><para><literal>allof(isWithin(Size, 100KB, 1MB))</literal> - All file sizes are
between 100KB and 1MB</para></listitem>
          <listitem><para><literal>AttrStr contains "R"</literal> - File is read-only</para></listitem>
          <listitem><para><literal>Name matches "file[0-9]\.txt"</literal> - Regex on filename</para></listitem>
          <listitem><para><literal>Content contains "Test"</literal> - File content includes keyword</para></listitem>
          <listitem><para><literal>sublines(Content, 0, 1) contains "XML"</literal> - First line
contains "XML"</para></listitem>
          <listitem><para><literal>(Extension = "log" and Size > 10MB) or (Date &lt; today() -
7days)</literal> - Large log files or files older than a week</para></listitem>
          <listitem><para><literal>AttrStr not contains "H" and Name like "*.tmp"</literal> -
Non-hidden temporary files</para></listitem>
          <listitem><para><literal>isWithin(Extension, "a", "m") and inRange(Size, 0, 1MB)</literal> -
Files with extensions from 'a' to 'm' and size less than 1MB</para></listitem>
          <listitem><para><literal>toLower(Name) = "readme.txt"</literal> - Case-insensitive filename
matching</para></listitem>
          <listitem><para><literal>toHalfWidth(Name) like "*.txt"</literal> - Match after converting
full-width to half-width</para></listitem>
        </itemizedlist>
      </section>
    </section>
  </section>

  <section id="Filters_FileFilter">
    <title>שימוש במסנני קבצים<indexterm>
        <primary>מסננים</primary>

        <secondary>מסנני קבצים</secondary>
      </indexterm><indexterm>
        <primary>מסננים</primary>

        <secondary>בהשוואות תיקיות</secondary>
      </indexterm></title>

    <para><glossterm>מסנני קבצים</glossterm> הם קבצי טקסט עם סיומת של
<filename>flt</filename>. הם מאפשרים לך להחיל כללי סינון מרובים על השוואת
תיקיות. בניגוד למסיכות קבצים, מסנני קבצים יכולים לכלול או לא לכלול התאמות.</para>

    <para><indexterm>
        <primary>מסנני קבצים</primary>

        <secondary>תבנית</secondary>
      </indexterm>WinMerge מתקין מספר מסנני קבצים
מוגדרים מראש. אם מסנני קבצים אלה אינם מספקים את הסינון הדרוש לך, תוכל ליצור
מסננים משלך. כדי להקל על משימה זו, WinMerge מספק גם קובץ תבנית בשם
<filename>FileFilter.tmpl</filename>. סעיף זה מתאר כיצד להחיל מסנני קבצים על
השוואות, ומתעד את תחביר מסנן הקבצים. <xref linkend="Filters_dlg" /> מתאר
כיצד להוסיף, לערוך ולנהל מסננים.</para>

    <section id="Filters_FileFilterLoc">
      <title>מיקומי מסנני קבצים<indexterm>
          <primary>תיקיות סינון</primary>

          <secondary>מיקומים</secondary>
        </indexterm><indexterm>
          <primary>מסנני קבצים</primary>

          <secondary>מיקומים</secondary>
        </indexterm></title>

      <para>WinMerge מזהה אוטומטית מסנני קבצים במיקומים אלה:</para>

      <variablelist>
        <varlistentry>
          <term>תיקיית המשנה מסננים בתיקיית ההתקנה של WinMerge</term>

          <listitem>
            <para>כאן מותקנים מסנני הקבצים המוגדרים מראש. לדוגמה, <filename>C:\Program
Files\WinMerge\Filters</filename>. אתה יכול ליצור או להעתיק קבצי מסנן במיקום
זה כדי להפוך אותם לזמינים לכל המשתמשים במערכת שלך.</para>

            <para>לפני יצירת מסנן קבצים חדש, בדוק אם המסננים המוגדרים מראש כבר מכילים את מה
שאתה צריך. אם לא, ייתכן שתמצא דוגמאות שימושיות לכללים בקבצים הקיימים.</para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term>תיקיית מסננים פרטית ברירת מחדל</term>

          <listitem>
            <para>המיקום של תיקייה זו מוגדר בדף מערכת של אפשרויות WinMerge. כברירת מחדל, הוא
מצוין כתיקיית משנה בתיקיית פרופיל המשתמש שלך (לדוגמה,
<filename>Documents</filename> ב-Windows 10). מסננים שנוצרים או מועתקים לכאן
בדרך כלל גלויים רק לך. אם אתה יוצר מסנני קבצים חדשים, אתה יכול להעתיק אותם
לכאן כדי לשמור אותם פרטיים.</para>
          </listitem>
        </varlistentry>
      </variablelist>

      <para>לפני שתוכל להחיל מסנני קבצים הקיימים בכל תיקייה אחרת, עליך להתקין אותם
תחילה.</para>
    </section>

    <section id="Filters_FileFilterApply">
      <title>החלת מסנני קבצים<indexterm>
          <primary>מסנני קבצים</primary>

          <secondary>החלה</secondary>
        </indexterm></title>

      <para>אתה יכול להחיל מסנן קבצים באמצעות אחת מהשיטות הבאות:</para>

      <itemizedlist>
        <listitem>
          <para>כשאתה מפעיל השוואת תיקיות מתיבת הדו-שיח בחר קבצים או תיקיות:</para>

          <orderedlist>
            <listitem>
              <para>לאחר בחירת התיקיות <guilabel>1</guilabel> ו-<guilabel>2</guilabel>, לחץ על
<guibutton>בחר</guibutton> ליד השדה <guilabel>מסנן</guilabel>.</para>
            </listitem>

            <listitem>
              <para>בתיבת הדו-שיח מסננים, השתמש בכרטיסייה מסנני קבצים כדי לבחור מסנן קבצים
ולטעון אותו בשדה <guilabel>מסנן</guilabel>.</para>

              <note>
                <para>אם מסנן קבצים מופעל כעת, מסנן הקבצים שנבחר כבר נטען בשדה
<guilabel>מסנן</guilabel>.</para>
              </note>
              <para></para>
            </listitem>

            <listitem>
              <para>המשך בפעולת ההשוואה. הקובץ בשדה <guilabel>מסנן</guilabel> מוחל כשאתה מתחיל
את הפעולה.</para>
            </listitem>
          </orderedlist>
        </listitem>

        <listitem>
          <para>כדי לשנות את סינון הקבצים לאחר שכבר הפעלת פעולת השוואת תיקיות (לדוגמה, החלת
מסנן אחר או השבתת סינון):</para>

          <orderedlist>
            <listitem>
              <para>לחץ על <menuchoice> <guimenu>כלים</guimenu>
<guimenuitem>מסננים</guimenuitem> </menuchoice>.</para>
            </listitem>

            <listitem>
              <para>בתיבת הדו-שיח מסננים, הגדר את הגדרת מסנן הקבצים החדשה שלך ולחץ על
<guibutton>אישור</guibutton>.</para>
            </listitem>

            <listitem>
              <para>הסינון החדש לא מוחל אוטומטית כשאתה סוגר את תיבת הדו-שיח מסננים: הקש
<keycap>F5</keycap> כדי לראות את התוצאות החדשות בחלון השוואת התיקיות.</para>
            </listitem>
          </orderedlist>
        </listitem>

        <listitem>
          <para><indexterm>
              <primary>שורת פקודה</primary>

              <secondary>החלת מסנני קבצים</secondary>
            </indexterm>כשאתה מפעיל השוואת תיקיות משורת הפקודה
של WinMerge, השתמש בדגל <option>-f</option> כדי לציין מסנן קבצים.</para>
        </listitem>
      </itemizedlist>
    </section>

    <section id="Filters_FileFilterSyntax">
      <title>תחביר מסנן קבצים<indexterm>
          <primary>כללים</primary>

          <secondary>מסנן קבצים</secondary>
        </indexterm><indexterm>
          <primary>מסנני קבצים</primary>

          <secondary>תחביר</secondary>
        </indexterm></title>

      <para>סעיף זה מתאר את התחביר של מסנני קבצים של WinMerge ומספק הנחיות לכתיבתם.</para>

      <para>תו המפריד להערות הוא <code>##</code>. לאחר מפריד הערות, כל התווים בשורה
מתעלמים מהם. WinMerge מתעלם מרוב תווי הרווח הלבן בכללים. עם זאת, הערה חייבת
תמיד להיות מוקדמת על ידי תו רווח לבן (רווח או טאב) אחד או יותר. כדי להשתמש
ב-<code>##</code> כתווים בכלל, השמט את קידומת הרווח הלבן.</para>

      <para>שתי השורות הנדרשות הראשונות של מסנן קבצים הן:</para>

      <variablelist>
        <varlistentry>
          <term>שם</term>

          <listitem>
            <para>שם המסנן המופיע בתיבת הדו-שיח קבצים</para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term>def</term>

          <listitem>
            <para>סוג הסינון שיש להחיל. ציין אחד מהערכים הבאים:</para>

            <variablelist>
              <varlistentry>
                <term>כלול</term>

                <listitem>
                  <para>כולל הכל מלבד פריטים התואמים לכלל שצוין.</para>
                </listitem>
              </varlistentry>

              <varlistentry>
                <term>אל תכלול</term>

                <listitem>
                  <para>לא כולל הכל מלבד פריטים התואמים לכלל שצוין.</para>

                  <para>כשאתה בוחר בשיטת החרגה, עליך גם להוסיף כלל <guilabel>d</guilabel> (ספרייה)
שמציין את תיקיות המשנה. בדרך כלל כדאי לציין את כל תיקיות המשנה, כך:</para>

                  <screen>d: \\*$ ## תיקיות משנה</screen>
                </listitem>
              </varlistentry>
            </variablelist>

            <tip>
              <para>אל תבלבל בין מונחים אלה. זכור, במסנני קבצים, כלל <guilabel>כלול</guilabel>
לא מציין מה לכלול, הוא מציין מה <emphasis>לא</emphasis> לכלול. באופן דומה,
<guilabel>אל תכלול</guilabel> לא מציין מה לא לכלול, הוא מציין מה לא לא
לכלול.</para>
            </tip>
          </listitem>
        </varlistentry>
      </variablelist>

      <para>Next, your file should contain one or more filter rules. You can add as many
rules as you like. There must be one rule per line, and each rule must be
entirely on one line (no line breaks are allowed in a rule).  A rule begins
with a type designator, followed by either a regular expression or a filter
expression.  The supported type designators are:</para>

      <variablelist>
        <varlistentry><term>f: <replaceable>regexp</replaceable></term><listitem><para>Match file names using regular expressions</para></listitem></varlistentry>
        <varlistentry><term>f!: <replaceable>regexp</replaceable></term><listitem><para>Exclude files matching regex (Available since 2.16.19)</para></listitem></varlistentry>
        <varlistentry><term>d: <replaceable>regexp</replaceable></term><listitem><para>Match folder names using regex</para></listitem></varlistentry>
        <varlistentry><term>d!: <replaceable>regexp</replaceable></term><listitem><para>Exclude folders matching regex (Available since 2.16.19)</para></listitem></varlistentry>
        <varlistentry><term>fe: <replaceable>expr</replaceable></term><listitem><para>Filter expression for files (e.g. fe:Size &lt; 1KB) (Available since
2.16.49)</para></listitem></varlistentry>
        <varlistentry><term>fe!: <replaceable>expr</replaceable></term><listitem><para>Filter expression to exclude files (Available since 2.16.49)</para></listitem></varlistentry>
        <varlistentry><term>de: <replaceable>expr</replaceable></term><listitem><para>Filter expression for folders (Available since 2.16.49)</para></listitem></varlistentry>
        <varlistentry><term>de!: <replaceable>expr</replaceable></term><listitem><para>Filter expression to exclude folders (Available since 2.16.49)</para></listitem></varlistentry>
      </variablelist>

      <para>בין רבים מתווים מיוחדים של regexp, הבאים חשובים במיוחד בכללי מסנן
קבצים:<indexterm>
          <primary>ביטויים רגולריים</primary>

          <secondary>תווים מיוחדים במסננים</secondary>
        </indexterm><indexterm>
          <primary>ביטויים רגולריים</primary>

          <secondary>במסנני קבצים</secondary>
        </indexterm></para>

      <variablelist>
        <varlistentry>
          <term>^ (תחילת שורה)</term>

          <listitem>
            <para>נדרש לעתים קרובות כדי שהכללים יעבדו כראוי.</para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term>$ (סוף שורה)</term>

          <listitem>
            <para>נדרש לעתים קרובות כדי שהכללים יעבדו כראוי. לדוגמה:</para>

            <screen>\.c$ ## תואם רק לשמות קבצים עם הסיומת <filename>c</filename>.
\.c ## תואם לכל סיומת שמתחילה ב-<filename>c</filename>, כמו <filename>cpp</filename> ו-<filename>com</filename>.</screen>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term>\ (בריחה)</term>

          <listitem>
            <para>מכריח תווים מיוחדים להתאים לתווים רגילים. לדוגמה, כדי להתאים שם תיקייה, הקדם
את תו המפריד של קו נטוי הפוך של התיקייה עם קו נטוי הפוך
(<code>\\</code>). כדי להתאים את הנקודה בשם קובץ, ציין קו נטוי הפוך ואחריו
נקודה (<code>\.</code>).</para>
          </listitem>
        </varlistentry>
      </variablelist>

      <para>לא נעשה שימוש בתווים מיוחדים או בתווים כלליים כדי להתאים לשמות קבצים. כדי
להתאים את כל שמות הקבצים מסוג מסוים, פשוט השמט את שם הקובץ.</para>

      <para>הכללים אינם תלויי אותיות רישיות/קטנות. לדוגמה, <code>f: \.bat$</code> תואם
ל-<filename>winmerge.bat</filename> ו-<filename>compare.BAT</filename>.</para>

      <example>
        <title>דוגמאות לכללי סינון קבצים</title>

        <para>כמה כללי סינון קבצים פשוטים:</para>

<screen>f: \.cpp$ ## התאם לקבצי <filename>*.cpp</filename>
f: \.h$ ## התאם לקבצי <filename>*.h</filename>
f: ^My ## התאם לקבצי <filename>My*.*</filename>
f: Dlg\. ## התאם לקבצי <filename>*Dlg.*</filename>
d: \\test$ ## התאם לתיקיות <filename>test</filename>
d: ^\\Build$ ## התאם לתיקיות <filename>Build</filename>
d: Temp$ ## התאם לתיקיות <filename>*Temp</filename> (לדוגמה, <filename>FirstTemp</filename>)
d: Src ## התאם לתיקיות <filename>*Src*</filename></screen><para>כמה כללים עם ביטויים רגולריים מורכבים יותר:</para>

<screen format="linespecific">f: ^\.#.*$ ## קבצי <filename>.#filename.version</filename>
f: Dlg\.c(pp)?$ ## קבצי <filename>*Dlg.c</filename> ו-<filename>*Dlg.cpp</filename>
f: ^I.*\.h$ ## קבצי <filename>I*.h</filename>
f: Srv[1-9]\.def$ ## קבצי <filename>*Srv1.def</filename> עד <filename>*Srv9.def</filename>
f: ^[h,k,m] ## קבצי <filename>h*.*</filename>, <filename>k*.*</filename> ו-<filename>m*.*</filename></screen></example>
    </section>
  </section>

  <section id="Filters_LineFilter">
    <title>שימוש במסנני שורות<indexterm>
        <primary>מסננים</primary>

        <secondary>שורה</secondary>
      </indexterm><indexterm>
        <primary>מסננים</primary>

        <secondary>בהשוואות קבצים</secondary>
      </indexterm></title>

    <para>בהשוואת קבצים, אתה יכול להשתמש במסנני שורות כדי להתעלם משורות
בודדות. לדוגמה, אתה עשוי להשתמש במסנני שורות כדי להתעלם מהערות או מסוג קוד
שנוצר מסוים, כמו חותמות זמן של מערכת בקרת גרסאות. כל מסנן שורות הוא כלל,
ואתה יכול להחיל כל מספר של מסנני שורות על השוואת קבצים.</para>

    <para>כדי ללמוד כיצד להוסיף, לערוך ולנהל מסננים, ראה <xref linkend="Filters_dlg"
/>.</para>

    <section id="Filters_LineFilterApply">
      <title>החלת מסנני שורות</title>

      <para>אתה יכול להחיל מסנני שורות באמצעות אחת מהשיטות הבאות:</para>

      <itemizedlist>
        <listitem>
          <para>כשאתה מפעיל השוואת קבצים מתיבת הדו-שיח בחר קבצים או תיקיות</para>

          <orderedlist>
            <listitem>
              <para>לאחר בחירת הקבצים <guilabel>1</guilabel> ו-<guilabel>2</guilabel>, לחץ על
<guibutton>בחר</guibutton> ליד השדה <guilabel>מסנן</guilabel>.</para>
            </listitem>

            <listitem>
              <para>בתיבת הדו-שיח מסננים, השתמש בכרטיסייה מסנני שורות כדי להפעיל את מסנני השורות
שבהם ברצונך להשתמש (אם יש), או כדי לראות אילו מסנני שורות מופעלים כעת.</para>

              <note>
                <para>השדה <guilabel>מסנן</guilabel> לא מציין אילו מסנני שורות מופעלים.</para>
              </note>
              <para></para>
            </listitem>

            <listitem>
              <para>המשך בפעולת השוואת הקבצים. מסנני השורות המופעלים מוחלים כשאתה מתחיל את
הפעולה.</para>
            </listitem>
          </orderedlist>
        </listitem>

        <listitem>
          <para>לאחר שכבר הפעלת פעולת השוואת קבצים (לדוגמה, כדי להחיל מסננים שונים או להשבית
סינון)</para>

          <orderedlist>
            <listitem>
              <para>לחץ על <menuchoice> <guimenu>כלים</guimenu>
<guimenuitem>מסננים</guimenuitem> </menuchoice>.</para>
            </listitem>

            <listitem>
              <para>פתח את הכרטיסייה מסנני קבצים.</para>
            </listitem>

            <listitem>
              <para>סמן את מסנני השורות הבודדים שברצונך להחיל ובטל את הסימון של מסננים שאינך
רוצה להחיל.</para>

              <para>אתה יכול גם להוסיף, לערוך ולהסיר מסננים מהרשימה באמצעות הכפתורים
<guibutton>חדש</guibutton>, <guibutton>ערוך</guibutton>
ו-<guibutton>הסר</guibutton>.</para>
            </listitem>

            <listitem>
              <para>כדי להפעיל סינון שורות, סמן את <guilabel>אפשר מסנני שורות</guilabel>. כדי
לכבות סינון שורות, בטל את הסימון של האפשרות.</para>
            </listitem>

            <listitem>
              <para>לחץ על <guibutton>אישור</guibutton> כדי לסגור את תיבת הדו-שיח מסנני קבצים.</para>
            </listitem>

            <listitem>
              <para>לחץ על <keycap>F5</keycap> כדי להחיל את השינויים שלך ולרענן את חלון השוואת
הקבצים.</para>
            </listitem>
          </orderedlist>
        </listitem>
      </itemizedlist>
    </section>

    <section id="Filters_LineFilterSyntax">
      <title>תחביר מסנן שורות<indexterm>
          <primary>כללים</primary>

          <secondary>מסנן שורות</secondary>
        </indexterm><indexterm>
          <primary>מסננים</primary>

          <secondary>שורה</secondary>
        </indexterm><indexterm>
          <primary>ביטויים רגולריים</primary>

          <secondary>במסנני שורות</secondary>
        </indexterm></title>

      <para>מסנן שורות הוא כלל המוערך כנגד כל הבדל בשורה בודדת בקבצים המושווים שלך, אם
כללי מסנן שורות מופעלים. כאשר כלל תואם להבדל בשורה בודדת, ההבדל מתעלם ממנו.</para>

      <para>הבדלים שמתעלמים מהם מסומנים בחלון השוואת הקבצים בצבע <guilabel>הבדל שמתעלמים
ממנו</guilabel> (כפי שהוגדר בדף צבעים של אפשרויות WinMerge). זה מאפשר לך
להבחין בין הבדלים שמתעלמים מהם מסוגים אחרים. עם זאת, אינך יכול לבחור או למזג
הבדל שמתעלמים ממנו.</para>

      <para>התאמת מסנן שורות ניתנת לתיאור במונחים של שני רעיונות:</para>

      <itemizedlist>
        <listitem>
          <para>כאשר כלל תואם לכל חלק מהשורה, ההבדל כולו מתעלמים ממנו. לכן, אינך יכול לסנן
רק חלק משורה. לדוגמה, נניח שלשני קבצים יש את ההבדל הבא בשורה בודדת:</para>

          <formalpara>
            <title>קובץ 1:</title>

            <para><screen># Jean Sibelius</screen></para>
          </formalpara>

          <formalpara>
            <title>קובץ 2:</title>

            <para><screen># Janne Sibelius</screen></para>
          </formalpara>

          <para>ללא סינון, השורה מזוהה כהבדל. אבל אם נחיל כלל מסנן שורות עם הביטוי,
<code>^#</code>, השורות מדווחות כזהות, מכיוון שהביטוי מציין רק את התו
הראשון, התואם בשני הקבצים.</para>
        </listitem>

        <listitem>
          <para>כלל מוחל על הבדל מרובה שורות רק אם כל השורות תואמות. לדוגמה, שקול את ההבדל
הזה בשתי שורות:</para>

          <formalpara>
            <title>קובץ 1:</title>

            <para><screen># Jean Sibelius
# Pekka Himanen</screen></para>
          </formalpara>

          <formalpara>
            <title>קובץ 2:</title>

            <para><screen># Janne Sibelius
Pekka Himanen</screen></para>
          </formalpara>

          <para>אותו כלל <code>^#</code> תואם לשורה הראשונה, אך לא לשורה השנייה. לכן, לא
מתעלמים מההבדל.</para>
        </listitem>
      </itemizedlist>

      <tip>
        <para>בדרך כלל מומלץ להשתמש בסמן תחילת שורה ( <code>^</code> ) וסוף שורה (
<code>$</code> ) כדי לשלוט בדפוסים שלך במדויק, מכיוון שהכלל מוחל אם כל חלק
משורה תואם לביטוי.</para>
      </tip>

      <example>
        <title>מסנני שורות לדוגמה</title>

<screen format="linespecific">^MYTAG$</screen><para>מסנן שורות שתואמות בדיוק ל-<literal>MYTAG</literal></para>

<screen format="linespecific">^::</screen><para>מסנן שורות שמתחילות ב-<literal>::</literal></para>

<screen format="linespecific">^/\*.*\*/$</screen><para>מסנן שורות שמתחילות ב-<literal><constant>/*</constant></literal> ומסתיימות
ב-<literal>*/</literal></para>

<screen format="linespecific">^[1-5]00</screen><para>מסנן שורות שמתחילות במספרים 100, 200, 300, 400 ו-500</para>
      </example>

      <example>
        <title>כלל מסנן שורות התואם לשורות CVS Id</title>

        <para>שורות CVS Id נראות כך:</para>

<screen>// $Id: Filters.xml 7591 2013-01-20 15:47:42Z christianlist $</screen><para>... וניתן לסנן עם כלל זה:</para>

<screen>^// \WId: .*\$</screen></example>

      <example>
        <title>סנן הערות מספרי שורות בקבצי po</title>

        <para>הערות מספרי שורות של po נראות כך:</para>

<screen>#: src/filename.c:766</screen><para>... וניתן לסנן עם כלל זה:</para>

<screen>^#</screen></example>
    </section>
  </section>

  <section id="Filters_SubstitutionFilter">
    <title>שימוש במסנני החלפה<indexterm>
        <primary>מסננים</primary>

        <secondary>החלפה</secondary>
      </indexterm><indexterm>
        <primary>מסננים</primary>

        <secondary>בהשוואות קבצים</secondary>
      </indexterm></title>

    <para>TBD</para>
  </section>

  <section id="Filters_dlg">
    <title>שימוש בתיבת הדו-שיח מסננים<indexterm>
        <primary>תיבת דו-שיח מסננים</primary>
      </indexterm><indexterm>
        <primary>מסננים</primary>

        <secondary>ניהול והפעלה</secondary>
      </indexterm></title>

    <para>סעיף זה מתאר את תיבת הדו-שיח מסננים, המספקת פונקציות ליצירה וניהול של מסנני
קבצים ומסנני שורות.</para>

    <para>כדי לפתוח את תיבת הדו-שיח מסננים, השתמש באחת מהשיטות הבאות:</para>

    <itemizedlist>
      <listitem>
        <para>בתיבת הדו-שיח בחר קבצים או תיקיות, לחץ על <guibutton>בחר</guibutton> מימין
לשדה <guilabel>מסנן</guilabel>. אתה משתמש בשיטה זו כשאתה רוצה להחיל מסנן
קבצים על פעולת השוואת תיקיות.</para>
      </listitem>

      <listitem>
        <para>לחץ על <menuchoice> <guimenu>כלים</guimenu>
<guimenuitem>מסננים</guimenuitem> </menuchoice>. ניתן להשתמש בשיטה זו בכל
עת, למעט כאשר תיבת הדו-שיח בחר קבצים או תיקיות פתוחה.</para>
      </listitem>
    </itemizedlist>

    <para>בתיבת הדו-שיח מסננים יש כרטיסייה לכל סוג של מסנן WinMerge:</para>

    <variablelist>
      <varlistentry>
        <term>מסנני קבצים</term>

        <listitem>
          <para>בחר כרטיסייה זו כדי לעבוד עם מסנני קבצים עבור פעולות השוואת תיקיות.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>מסנני שורות</term>

        <listitem>
          <para>בחר כרטיסייה זו כדי לעבוד עם מסנני שורות עבור פעולות השוואת קבצים.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>מסנני החלפה</term>

        <listitem>
          <para>בחר כרטיסייה זו כדי לעבוד עם מסנני החלפה עבור פעולות השוואת קבצים.</para>
        </listitem>
      </varlistentry>
    </variablelist>

    <section id="Filters_FileFiltersTab">
      <title>שימוש בכרטיסייה מסנני קבצים<indexterm>
          <primary>מסנני קבצים</primary>

          <secondary>הפעלה</secondary>
        </indexterm></title>

      <para>החלק העיקרי של כרטיסייה זו הוא רשימה של מסנני קבצים הזמינים עבור פעולות
השוואת תיקיות. הרשימה כוללת מסנני קבצים משותפים, פרטיים ומוגדרים ש-WinMerge
מכיר, כמתואר ב-<xref linkend="Filters_FileFilterLoc" />.</para>

      <section id="Filters_FileFilterEnabling">
        <title>הפעלה והשבתה של מסנני קבצים</title>

        <para>עליך להפעיל מסנן קבצים כדי להפוך אותו לזמין בפעולת השוואת תיקיות, או להשבית
מסנן נוכחי כדי למנוע את השימוש בו:</para>

        <orderedlist>
          <listitem>
            <para>פתח את תיבת הדו-שיח מסננים, אם היא עדיין לא פתוחה.</para>
          </listitem>

          <listitem>
            <para>בחר מסנן קבצים או <guimenuitem>&lt;ללא&gt;</guimenuitem> מהרשימה.</para>
          </listitem>

          <listitem>
            <para>לחץ על <guibutton>אישור</guibutton> כדי לסגור את תיבת הדו-שיח מסננים.</para>
          </listitem>
        </orderedlist>

        <para>ישנן מספר דרכים להחיל מסנני קבצים לאחר הפעלתם. לפרטים, ראה <xref
linkend="Filters_FileFilterApply" />.</para>
      </section>

      <section id="Filters_FileFilterCfg">
        <title>הגדרת מסנני קבצים</title>

        <para>השתמש בלחצנים אלה כדי לנהל את רשימת <guilabel>מסנני קבצים</guilabel> שלך
וליצור מסנני קבצים חדשים:</para>

        <variablelist>
          <varlistentry>
            <term>בדוק</term>

            <listitem>
              <para>בחר מסנן קבצים ברשימה ולחץ על <guibutton>בדוק</guibutton> כדי לראות במהירות
כיצד המסנן עובד. ראה <xref linkend="Filters_TestingDlg" /> לפרטים.</para>
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>התקן</term>

            <listitem>
              <para>מאפשר לך לאתר מסנן קבצים ומוסיף אותו לרשימת המסננים. מסנני קבצים שאינם
בתיקייה המשותפת או הפרטית המוגדרת כברירת מחדל אינם מזוהים אלא אם אתה מתקין
אותם.</para>
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>חדש</term>

            <listitem>
              <para>יוצר עותק חדש של תבנית קבצים בתיקיות המסננים המשותפות או הפרטיות, ופותח אותו
בעורך ברירת המחדל שלך. ערוך את התבנית והוסף את הכללים שלך, כמתואר ב-<xref
linkend="Filters_CreatingFile" />.</para>
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>ערוך</term>

            <listitem>
              <para>בחר מסנן קבצים ברשימה ולחץ על <guibutton>ערוך</guibutton> כדי לפתוח את הקובץ
בעורך ברירת המחדל שלך.</para>
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>מחק</term>

            <listitem>
              <para>בחר מסנן קבצים ברשימה ולחץ על <guibutton>מחק</guibutton> כדי למחוק את הקובץ
ולהסיר אותו מהרשימה. כן, הקובץ באמת נמחק!</para>
            </listitem>
          </varlistentry>
        </variablelist>

        <para>השינויים שלך נשמרים כשאתה לוחץ על <guibutton>אישור</guibutton> כדי לסגור את
תיבת הדו-שיח מסננים. מסנני שורות מאוחסנים ברישום של Windows.</para>
      </section>

      <section id="Filters_CreatingFile">
        <title>יצירת מסנן קבצים</title>

        <para>אם מסנני הקבצים המותקנים עם WinMerge אינם מספקים את הסינון הדרוש לך, אתה
יכול ליצור מסננים משלך:</para>

        <orderedlist>
          <listitem>
            <para>לחץ על <menuchoice> <guimenu>כלים</guimenu>
<guimenuitem>מסננים</guimenuitem> </menuchoice>. או, מתיבת הדו-שיח בחר קבצים
או תיקיות, לחץ על <guibutton>בחר</guibutton> מימין לשדה
<guilabel>מסנן</guilabel>.</para>
          </listitem>

          <listitem id="Filters_New_step">
            <para>בכרטיסייה מסנני קבצים של תיבת הדו-שיח מסננים, לחץ על
<guibutton>חדש</guibutton>.</para>
          </listitem>

          <listitem>
            <para>בתיבת הדו-שיח מסנן משותף או פרטי, בחר <guilabel>מסנן משותף</guilabel> או
<guilabel>מסנן פרטי</guilabel> (ראה <xref linkend="Filters_FileFilterLoc" />
לשימושים בהם) ולחץ על <keycap>אישור</keycap>.</para>

            <para>תיבת הדו-שיח בחר שם קובץ למסנן חדש נפתחת בתיקיית הקבצים המשותפת או הפרטית
במערכת שלך (אם התיקייה הפרטית אינה קיימת, WinMerge יוצר אותה).</para>
          </listitem>

          <listitem>
            <para>בתיבת הדו-שיח בחר שם קובץ למסנן חדש, הזן שם קובץ חדש ולחץ על
<guibutton>שמור</guibutton>.</para>

            <note>
              <para>אל תבחר שם קובץ קיים: כדי לערוך קובץ קיים, חזור לשלב <xref
linkend="Filters_New_step" /> ולחץ על ערוך במקום על חדש.</para>
            </note>

            <para>WinMerge מאתחל את הקובץ החדש עם התוכן של התבנית
<filename>FileFilter.tmpl</filename>, ופותח אותו בעורך הטקסט המוגדר כברירת
מחדל שלך.</para>
          </listitem>

          <listitem>
            <para>פעל בהתאם להוראות התבנית כדי לערוך את התבנית, לעדכן את שם מציין המיקום
והתיאור ולהוסיף כללי מסנן כמתואר ב-<xref linkend="Filters_FileFilterSyntax"
/>. שמור את הקובץ בעורך הטקסט שלך.</para>

            <tip>
              <para>אם אתה רוצה לבדוק במהירות כלל שאתה מגדיר, נסה ללחוץ על בדוק בתיבת הדו-שיח
מסננים. ראה <xref linkend="Filters_TestingDlg" /> לפרטים.</para>
            </tip>
            <para></para>
          </listitem>

          <listitem>
            <para>אם יצרת את מסנן הקבצים שלך באחת מתיקיות <filename>מסננים</filename>
הסטנדרטיות, ותיבת הדו-שיח מסננים אינה מציגה את מסנן הקבצים החדש שלך, נסה
ללחוץ על <guibutton>אישור</guibutton> כדי לסגור אותה, ואז לחץ על
<menuchoice> <guimenu>כלים</guimenu> <guimenuitem>מסננים</guimenuitem>
</menuchoice> שוב כדי לפתוח אותה מחדש. רשימת <guilabel>מסנני
קבצים</guilabel> צריכה לכלול כעת את מסנן הקבצים החדש.</para>

            <para>אם שמרת את הקובץ במיקום חלופי במערכת הקבצים שלך), WinMerge לא יכול לזהות
אותו אלא אם אתה מתקין אותו. כדי להפוך מסנן קבצים לניתן לזיהוי בכל מקום
במערכת שלך:</para>

            <orderedlist numeration="loweralpha">
              <listitem>
                <para>לחץ על <guibutton>התקן</guibutton> בתיבת הדו-שיח מסננים.</para>
              </listitem>

              <listitem>
                <para>בתיבת הדו-שיח אתר קובץ מסנן להתקנה, נווט לקובץ <filename>flt</filename>
במערכת שלך ולחץ על <guibutton>פתח</guibutton>. רשימת מסנני הקבצים צריכה
לכלול כעת את מסנן הקבצים המותקן.</para>
              </listitem>
            </orderedlist>
          </listitem>
        </orderedlist>
      </section>

      <section id="Filters_TestingDlg">
        <title>בדיקת כללי מסנן קבצים<indexterm>
            <primary>מסנני קבצים</primary>

            <secondary>בדיקה</secondary>
          </indexterm><indexterm>
            <primary>בדיקת מסנני קבצים</primary>
          </indexterm></title>

        <para>השתמש בתיבת הדו-שיח בדוק מסנן כדי לבדוק במהירות מסנן קבצים כנגד נתוני דוגמה,
כדי לעזור לך לפתח כללים חדשים או כדי להבין כיצד כללים קיימים עובדים. זה יכול
להיות קל יותר מאשר הפעלת פעולת השוואה מלאה.</para>

        <para>החל מתיבת הדו-שיח מסננים:</para>

        <orderedlist>
          <listitem>
            <para>בכרטיסייה מסנני קבצים, בחר את מסנן הקבצים שברצונך לבדוק.</para>
          </listitem>

          <listitem>
            <para>אם אתה רוצה לראות את הכללים שאתה הולך לבדוק, לחץ על
<guibutton>ערוך</guibutton> עכשיו כדי לפתוח את הקובץ כדי שתוכל לצפות בו
במהלך השלבים הבאים.</para>
          </listitem>

          <listitem>
            <para>לחץ על <guibutton>בדוק</guibutton>.</para>
          </listitem>

          <listitem>
            <para>בתיבת הדו-שיח בדוק מסנן, בחר את סוג הכלל לבדיקה:</para>

            <itemizedlist>
              <listitem>
                <para>כדי לבדוק כלל קובץ <guilabel>f:</guilabel> במסנן הקבצים שלך, בטל את הסימון
של האפשרות <guilabel>שם תיקייה</guilabel>.</para>
              </listitem>

              <listitem>
                <para>כדי לבדוק כלל תיקייה <guilabel>d:</guilabel>, סמן את האפשרות <guilabel>שם
תיקייה</guilabel>.</para>
              </listitem>
            </itemizedlist>
          </listitem>

          <listitem>
            <para>הזן את הטקסט לבדיקה.</para>

            <para>הטקסט צריך להיות מתאים לסוג הכלל שאתה בודק. לדוגמה, אם סימנת את האפשרות
<guilabel>שם תיקייה</guilabel>, סביר להניח שתרצה להזין שם תיקייה, כגון
\temp.</para>

            <para>התיבה <guilabel>תוצאה</guilabel> מציגה את הערך שהזנת, ואחריו את הסטטוס שלו:
<computeroutput>עבר</computeroutput> או
<computeroutput>נכשל</computeroutput>.</para>
          </listitem>
        </orderedlist>
      </section>
    </section>

    <section id="Filters_LineFiltersTab">
      <title>שימוש בכרטיסייה מסנני שורות<indexterm>
          <primary>מסנני שורות</primary>

          <secondary>הפעלה</secondary>
        </indexterm></title>

      <para>השתמש בכרטיסייה זו כדי להגדיר ולהפעיל מסנני שורות עבור פעולות השוואת
קבצים. הכרטיסייה כוללת רשימה של כללים. כל כלל מכיל ביטוי רגולרי יחיד. אתה
יכול להחיל כל שילוב של כללים מהרשימה על השוואת קבצים.</para>

      <section id="Filters_LineFilterCfg">
        <title>הגדרת מסנני שורות</title>

        <para>מתחת לרשימת <guilabel>ביטויים רגולריים</guilabel> יש תיבת עריכה ולחצנים שבהם
תוכל להשתמש כדי לתחזק את הרשימה בכל עת על ידי הוספה, עריכה והסרה של כללים.</para>

        <para>כדי להוסיף כלל חדש:</para>

        <orderedlist>
          <listitem>
            <para>לחץ על <guibutton>חדש</guibutton>. סמן העריכה שלך מופעל אוטומטית בתיבת
העריכה.</para>
          </listitem>

          <listitem>
            <para>הזן ביטוי בתיבת העריכה שמתחת לרשימת <guilabel>ביטויים רגולריים</guilabel>.</para>
          </listitem>

          <listitem>
            <para>לחץ על <guibutton>שמור</guibutton> כדי לטעון את הביטוי בשורה חדשה ברשימה.</para>
          </listitem>
        </orderedlist>

        <para>כדי לערוך כלל קיים:</para>

        <orderedlist>
          <listitem>
            <para>בחר את השורה ולחץ על <guibutton>ערוך</guibutton>.</para>
          </listitem>

          <listitem>
            <para>ערוך את הביטוי בתיבת העריכה.</para>
          </listitem>

          <listitem>
            <para>לחץ על <guibutton>שמור</guibutton><guibutton> </guibutton>כשסיימת.</para>
          </listitem>
        </orderedlist>

        <para>כדי למחוק כלל קיים, בחר (סמן) את הכלל ולחץ על <guibutton>הסר</guibutton>.</para>
      </section>

      <section id="Filters_LineFilterEnabling">
        <title>הפעלה והשבתה של מסנני שורות<indexterm>
            <primary>מסנני שורות</primary>

            <secondary>רשימת זמינים</secondary>
          </indexterm></title>

        <orderedlist>
          <listitem>
            <para>ברשימת <guilabel>ביטויים רגולריים</guilabel>, סמן רק את המסננים שברצונך
להחיל ובטל את הסימון של כל המסננים שאינך רוצה להחיל.</para>
          </listitem>

          <listitem>
            <para>סמן או בטל את הסימון של האפשרות <guilabel>אפשר מסנני שורות</guilabel>. אם
תפעיל סינון, כל הכללים המסומנים כעת ברשימת <guilabel>ביטוי רגולרי</guilabel>
ישמשו. אם הסינון כבוי, לא ישמשו כללים גם אם הם מסומנים.</para>
          </listitem>

          <listitem>
            <para>לחץ על <guibutton>אישור</guibutton> כדי לסגור את תיבת הדו-שיח מסננים ולשמור
את ההגדרות שלך.</para>
          </listitem>
        </orderedlist>

        <para>ישנן מספר דרכים להחיל מסנני קבצים לאחר הפעלתם. לפרטים, ראה <xref
linkend="Filters_LineFilterApply" />.</para>
      </section>
    </section>

    <section id="Filters_SubstitutionFiltersTab">
      <title>שימוש בכרטיסייה מסנני החלפה<indexterm>
          <primary>מסנני החלפה</primary>

          <secondary>הפעלה</secondary>
        </indexterm></title>

        <para>TBD</para>

      <section id="Filters_SubstitutionFilterCfg">
        <title>הגדרת מסנני החלפה</title>

        <para>TBD</para>

      </section>

      <section id="Filters_SubstitutionFilterEnabling">
        <title>הפעלה והשבתה של מסנני החלפה<indexterm>
            <primary>מסנני החלפה</primary>

            <secondary>רשימת זמינים</secondary>
          </indexterm></title>

        <para>TBD</para>
      </section>
    </section>
  </section>

  <section id="AboutFilters_regexp">
    <title>קבלת עזרה בביטויים רגולריים<indexterm>
        <primary>ביטויים רגולריים</primary>

        <secondary>קבלת עזרה</secondary>
      </indexterm></title>

    <para>ביטויים רגולריים יכולים להיות מורכבים מאוד. למרבה המזל, רוב מסנני הקבצים
ב-WinMerge כוללים ביטויי סיומת פשוטים, כפי שמוצג בדוגמאות בנושא זה. קבצי
המסנן המותקנים עם WinMerge כוללים דוגמאות שימושיות רבות אחרות.</para>

    <para>לבסוף, ישנם משאבים רבים באינטרנט לעזרה ב-regexps, כולל אתרים אלה:</para>

    <variablelist>
      <varlistentry>
        <term>אתר טוב המוקדש ל-regexps:</term>

        <listitem>
          <simpara><ulink
url="https://www.regular-expressions.info/">https://www.regular-expressions.info/</ulink></simpara>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>הדרכה:</term>

        <listitem>
          <simpara><ulink
url="http://www.zvon.org/comp/r/tut-Regexp.html">http://www.zvon.org/comp/r/tut-Regexp.html</ulink></simpara>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>עיון מהיר ב-PDF:</term>

        <listitem>
          <simpara><ulink
url="https://github.com/GordonMcKinney/gist-assets/raw/master/regex.pdf">
https://github.com/GordonMcKinney/gist-assets/raw/master/regex.pdf</ulink></simpara>
        </listitem>
      </varlistentry>
    </variablelist>
  </section>
</article>
