Vergleich zweier char*-Strings.

Vergleich zweier char*-Strings. Alpha-numerischer Vergleich zweier Strings.

Der Text eines leeren Textplatzhalters ist nicht leer sondern ein unsichtbares Leerzeichen (<0x200B>). (Ein Platzhalter kann keinen leeren Text enthalten, dann wäre auch der Platzhalter weg.) Das showmessage im folgenden Skripttext wird also nie erreicht :

    textmodel::get (docText);
    if (strcmp (string::get (docText), "") == 0)
    {
        showmessage ("Leer");
    }


Der Dokumenttext muss in dieser Situation gegen das unsichtbare Leerzeichen (UTF8 = E2 80 8B, Unicode = 200B) geprüft werden :

    textmodel::get (docText);
    if (strcmp (strcmp (string::get (docText), "\xE2\x80\x8B") == 0)
    {
        showmessage ("Leer");
    }


Verwenden Sie für das Abholen des Dokumenttextes ein TaggedText-Format, wird das unsichtbare Leerzeichen Unicode-codiert :

    textmodel::get (docText, ..., kExportTT);
    if (strcmp (strcmp (string::get (docText), "<0x200B>") == 0)
    {
        showmessage ("Leer");
    }


Zum Vergleich der "Netto"-Strings können die Funktion auch mit netWeight = 1 verwenden.

Name Typ Default Beschreibung
Return int   < 0 : s1 < s2
Return int   = 0 : s1 == s2
Return int   > 0 : s1 > s2
s1, s2 char*, char* -, - char*-Strings, die verglichen werden sollen.
netWeight int 0 "Netto"inhalte der Strings vergleichen.

Die Netto-Werte der Strings werden wie folgt berechnet :
  • Leerstrings werden durch ein unsichtbares Leerzeichen (Unicode 0x200B) ersetzt.
  • UTF-8-Zeichen werden einheitlich in <0xXXXX>-Tags übersetzt.
  • Beginnt der Text mit %!TT wird (wenn vorhanden) das direkt darauf folgende ParaStyle-Tag entfernt.
  • Alle weiteren ParaStyles werden durch Absatztrenner ersetzt.
  • Alle <nl:> werden durch Absatztrenner ersetzt.
  • Alle übrigen TaggedText-Tags werden aus dem Text entfernt.
  • Alle doppelten Anführungszeichen werden durch " ersetzt und alle einfachen durch '.
  • Alle Arten Leerzeichen (Unicode 0x2000 - 0x200F) werden jeweils durch Blank ersetzt.
  • Alle Arten Trennzeichen (Unicode 0x2010 - 0x2016) werden jewels durch Minus ersetzt.
Preconditions
#include "internal/text.h"

Seit
netWeight seit v3.2.3 R2600, 08.08.2011

Verfügbarkeit
priint:comet InDesign® Plug-Ins, comet_pdf, Illustrator

Siehe auch
strncmp
textcmp
textncmp

Alphabetic index HTML hierarchy of classes or Java