LlStringTrim/de

From Second Life Wiki
< LlStringTrim
Revision as of 05: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
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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.