Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : Verschiedene string returns



Tockra
12.07.2010, 06:39
Hallo Leute,
ich weiß der Thread Titel ist schlecht gewählt, aber mir fiehl leider nichts besseres ein.
Ich suche im Moment eine Funktion (am besten für Lua)(andere Sprache ist auch nicht schlimm, sofern es sich auf Lua übertragen lässt), die von einen String, alle möglichen Varianten mit groß oder klein Schreibung als Tabelle zurückgibt.
Hier mal ein Beispiel mit 2 Buchstaben, da ich jetzt kb habe das mit 4 oder so zu machen ^^ :
"TE" = "TE","Te","tE","te"

Ich hoffe ihr könnt mir helfen...

MfG. T

LoC
12.07.2010, 09:41
Wofür brauchst du das denn? Evtl. fällt hier jemandem eine bessere Lösung ein. (Ich kenne mich zu wenig mit Lua aus um dir da einen Code für zu schreiben)

Tockra
12.07.2010, 13:24
Ich brauche das für ein anti fake Clan Tag System (für ein anderes Spiel) .
Es soll kontrolliert werden, ob der Spieler den vorgegebenen Clantag im Namen hat.
Dabei soll aber nicht nur kontrolliert werden, ob der Clantag genauso geschrieben ist wie er vorgegeben ist, sondern auch in jeder möglichen Schreibweise...
Bsp:
Ich gebe bei der gewünschten funktion Ne ein :

giveClanTag("Ne")

Dann soll das so zurückgegeben werden (als Tabelle) :
"Ne", "ne", "NE", "nE"

Joker
12.07.2010, 13:44
local A = string.lower(Clantag) == "ne"
//A ist true, wenn der String Clantag ohne Groß- und Kleinschreibung gleich "ne" ist.
http://wiki.garrysmod.com/?title=String.lower

Tockra
12.07.2010, 14:37
Danke, den Befehl kannte ich zwar auch, aber ich habe total vergessen, dass man den Clantag auch einfach "klein" machen kann...

Ein weiteres Problem existiert aber noch.
Um ein Kommando im Spiel zu definieren, muss man folgendes machen:



function tft(player,commandname)
--hier kommt das rein, was ausgeführt wird, wenn der Spieler ingame /test eingibt...
end
addCommandHandler("test",tft)


Das problem ist, dass ingame die Funktion nur ausgeführt wird, wenn ich /test eingebe und nicht wenn ich /Test oder /teST eingebe...
Das ist ein bisschen blöd...
würde euch da eine gute Idee einfallen?

Joker
12.07.2010, 14:52
Dafür musst du in der Funktion addCommandHandler den lower-Befehl einfügen, so dass der zu prüfende String stets kleingeschrieben ist.

Tockra
12.07.2010, 15:35
Ne das funktioniert so nicht, da der Befehl der bei addCommandHandler drinne steht ist ja der der geprüft wird.
Wenn es nicht der Befehl ist, der so drin steht (wenn man mit string.lower den Befehl reinschreiben würde, dann währe alles klein geschrieben), da benutzt wird, wird die function nicht ausgeführt

Joker
12.07.2010, 18:19
Ne das funktioniert so nicht, da der Befehl der bei addCommandHandler drinne steht ist ja der der geprüft wird.
Wenn es nicht der Befehl ist, der so drin steht (wenn man mit string.lower den Befehl reinschreiben würde, dann währe alles klein geschrieben), da benutzt wird, wird die function nicht ausgeführt

Es funktioniert so schon. Ich glaube, du hast mich nur missverstanden.
Die Chateingabe ist der zu prüfende String. Also soll dieser in Lowercases gesetzt werden. Willst du, dass nicht zu prüfende Teile des Strings so bleiben sollen, wie sie waren, kannst du auch nur die wichtigen Teile des Strings prüfen lassen. So wäre bei "/Say AbC" nur der String "/Say" notwendig, d.h. die ersten 4 Buchstaben -> local A = string.lower(string.Left(Chateingabe,4)) == "/say".

Tockra
12.07.2010, 18:46
Mann kann aber nirgends eine Abfrage schreiben, ob das Kommandoname (in lower Format) == xyz ist

Joker
12.07.2010, 18:51
Mann kann aber nirgends eine Abfrage schreiben, ob das Kommandoname (in lower Format) == xyz ist
Doch. In der addCommandHandler Funktion selbst.

Stoned
23.07.2010, 08:09
Nur ma so ne frage, aber wtf is addCommandHandler? Kommt das von nem Addon?

RP-01
23.07.2010, 13:48
Nur ma so ne frage, aber wtf is addCommandHandler? Kommt das von nem Addon?

Ich brauche das für ein anti fake Clan Tag System (für ein anderes Spiel) .

;)