LlStringTrim/de

From Second Life Wiki
< LlStringTrim
Revision as of 04:34, 29 November 2008 by Zai Lynch (talk | contribs) (l10n)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Beschreibung

Funktion: string llStringTrim( string src, integer type );

Der zurückgegebene String ist src, wobei Leerzeichen (ebenfalls Absätze oder Tabulatoren) am Anfang und/oder Ende entfernt wurden.

• string src
• integer type STRING_TRIM* flag(s)

Konstante Beschreibung
STRING_TRIM_HEAD 0x1 Entfernt Leerzeichen am Anfang.
STRING_TRIM_TAIL 0x2 Entfernt Leerzeichen am Ende.
STRING_TRIM 0x3 Entfernt Leerzeichen an Anfang und Ende.

Beispiele

Wann immer unstrukturierte Eingaben von einem Nutzer akzeptiert werden - sei es in einer Notizkarte oder via chat - ist es eine gute Idee diese Eingabe zuzuschneiden: <lsl> llStringTrim("Nutzereingabe", STRING_TRIM); </lsl>

Dieses Beispiel gibt die Anzahl von führenden oder endenden Leerzeichen einer Zeichenkette (nicht wirklich nützlich, aber zeigt wie die Funktion genutzt wird). <lsl> default {

   state_entry()
   {
       llListen(4, "", llGetOwner(), "");
   }
   on_rez(integer a)
   {
       llResetScript();
   }
   listen(integer chan, string name, key id, string msg)
   {
       //entfernt einfache oder doppelte Anführungszeichen um die Zeichenkette herum
       if(~llSubStringIndex("'\"", llGetSubString(msg,0,0)))
           if(llGetSubString(msg,-1,-1) == llGetSubString(msg,0,0))
               msg = llDeleteSubString(msg, -1, 0);
       
       //speichert die Länge
       integer length = llStringLength(msg);
       
       //schneidet msg zu (nicht notwendig, dies als Variablen zu speichern, aber es übersichtlicher)
       string trim_left = llStringTrim(msg, STRING_TRIM_HEAD);
       string trim_right = llStringTrim(msg, STRING_TRIM_HEAD);
       string trim = llStringTrim(msg, STRING_TRIM);
       //gibt die Resultate aus
       llOwnerSay("Initial length = " + (string)length +
                "\nLeading Spaces = " + (string)(length - llStringLength(trim_left))+
                "\nTrailing Spaces = " + (string)(length - llStringLength(trim_right))+
                "\nTrimmed Message = \"" + trim + "\"");
   }

}

</lsl>

Notizen

Neben Leerzeichen am Anfang und/oder Ende, wird die eigentliche Zeichenkette unberührt bleiben. Das bedeutet aber auch, dass zusätzliche ungewollte Leerzeichen innerhalb der Zeichenkette - zum Beispiel versehentlich erstellte doppel-Leerzeichen - nicht korrigiert werden.

Der folgende Code wird alle doppelten, sowie führende und endende Leerzeichen entfernen. <lsl>llDumpList2String(llParseString2List(src, [" "], []), " "); //Funktioniert, kann aber eine große Menge an Speicherkapazität verbrauchen</lsl>

Weiterführende Anmerkungen

Historie

  • Eingeführt in 1.13.4

Nach JIRA-Issues suchen, die sich hierauf beziehen

Signature

function string llStringTrim( string src, integer type );
Dieser Artikel war nicht hilfreich für Dich? Vielleicht bringt der zugehörige Artikel im SLinfo Wiki Erleuchtung.