<?xml version="1.0" encoding="utf-8"?>
<page xmlns="http://projectmallard.org/1.0/" type="topic" id="text-filters" xml:lang="de">
<info>
  <title type="sort">2</title>
  <link type="guide" xref="index#file-mode"/>
  <link type="seealso" xref="file-filters"/>
  <revision docversion="1.6" status="draft"/>
  <include xmlns="http://www.w3.org/2001/XInclude" href="legal.xml"/>
  <credit type="author copyright">
    <name>Kai Willadsen</name>
    <email>kai.willadsen@gmail.com</email>
    <years>2012</years>
  </credit>

    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
      <mal:name>Mario Blättermann</mal:name>
      <mal:email>mario.blaettermann@gmail.com</mal:email>
      <mal:years>2009, 2016, 2018</mal:years>
    </mal:credit>
  
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
      <mal:name>Benjamin Steinwender</mal:name>
      <mal:email>b@stbe.at</mal:email>
      <mal:years>2014-2015</mal:years>
    </mal:credit>
  
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
      <mal:name>Christian Kirbach</mal:name>
      <mal:email>christian.kirbach@gmail.com</mal:email>
      <mal:years>2014, 2016</mal:years>
    </mal:credit>
  
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
      <mal:name>Jürgen Benvenuti</mal:name>
      <mal:email>gastornis@posteo.org</mal:email>
      <mal:years>2023</mal:years>
    </mal:credit>
  </info>

<title>Filterung von Text</title>

<p>Beim Vergleichen mehrerer Dateien gibt es Textabschnitte, in denen Unterschiede nicht wirklich von Bedeutung sind. Beispielsweise wollen Sie sich auf Änderungen in Code-Abschnitten konzentrieren, aber Änderungen in Kommentarzeilen außer Acht lassen. Mit Textfiltern können Sie <app>Meld</app> anweisen, bei der Anzeige der Unterschiede zwischen Dateien Text zu ignorieren, der einem Muster entspricht (zum Beispiel einem regulären Ausdruck).</p>

<note style="important">
  <p>Textfilter wirken sich nicht nur auf Dateivergleiche, sondern auch auf Ordnervergleiche aus. Details hierzu finden Sie in den <link xref="file-filters">Hinweisen zur Dateifilterung</link>.</p>
</note>


<section id="text-filter-creation">
<title>Hinzufügen und Verwenden von Textfiltern</title>

<p>Textfilter lassen sich im Reiter <gui>Textfilter</gui> im Dialog <gui>Einstellungen</gui> ein- oder ausschalten. <app>Meld</app> bietet einige simple Filter, die Sie nützlich finden könnten, aber Sie können auch eigene Filter hinzufügen.</p>

<p>In <app>Meld</app> sind Textfilter reguläre Ausdrücke, die auf den Text der zu vergleichenden Dateien angewendet werden. Jeder passende Text wird während des Vergleichs ignoriert. Sie sehen ihn immer noch in der Vergleichsansicht, aber er wird nicht zum Finden von Unterschieden herangezogen. Textfilter werden der Reihe nach angewendet, daher ist es möglich, dass der erste Filter Text entfernt, der vom zweiten Filter als Treffer angesehen wird usw.</p>

<note style="tip">
  <p>Wenn Sie mit regulären Ausdrücken nicht vertraut sind, sollten Sie sich das <link href="http://docs.python.org/howto/regex.html">Python Regular Expression HOWTO</link> anschauen.</p>
</note>

</section>



<section id="text-filter-problems">
<title>Richtige Filterung von Text</title>

<p>Es ist leicht, Text falsch zu filtern, und die Filterunterstützung in Meld ist unvollständig. Insbesondere kann ein Textfilter die Zeilenanzahl in einer Datei nicht ändern. Nehmen wir an, der eingebaute <gui>Script comment</gui>-Filter ist aktiviert, und wir vergleichen die folgenden Dateien:</p>
<table>
  <tbody>
    <tr>
      <td>
        <listing>
          <title><file>Kommentar1.txt</file></title>
          <code>
a
b#Kommentar
c
d</code>
        </listing>
      </td>
      <td>
        <listing>
          <title><file>Kommentar2.txt</file></title>
          <code>
a
b
c
#Kommentar</code>
        </listing>
      </td>
    </tr>
  </tbody>
</table>
<p>Dann würden die mit <code>b</code> beginnenden Zeilen als identisch aufgefasst (der Kommentar wird herausgefiltert), aber die mit <code>d</code> beginnende Zeile wird als Unterschied zur Kommentarzeile rechts angezeigt. Das passiert, weil <code>#comment</code> rechts entfernt wird, aber die Zeile selbst nicht entfernt werden kann. <app>Meld</app> zeigt die <code>d</code>-Zeile als Unterschied zu dem an, was auf der rechten Seite sieht, nämlich einer leeren Zeile.</p>

</section>


<section id="text-filter-blank-lines">
<title>Leerzeilen und Filter</title>

<p>Die Option <gui>Ignorieren von Änderungen, durch die Leerzeichen hinzugefügt oder entfernt werden</gui> im Reiter <gui>Textfilter</gui> bedarf weiterer Erklärung. Wenn dieser spezielle Filter aktiviert ist, dann wird jede Änderung vollständig ignoriert, die nur aus Leerzeilen besteht. Das kann vorkommen, wenn im Text tatsächlich Leerzeichen geändert wurden, oder wenn Ihr aktiver Textfilter alle anderen Änderungen aus Ihrem Text entfernt und dabei nur Leerzeilen hinterlassen hat.</p>

<p>Sie können mit dieser Option einige der <link xref="#text-filter-problems">Probleme und Einschränkungen</link> von Textfiltern umgehen, bei denen Filter ganze Zeilen nicht entfernen können.</p>

</section>

</page>
