Verschiedene Möglichkeiten

Tockra

Lt. Commander
Registriert
Dez. 2008
Beiträge
1.063
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
 
Damit dürftest du relativ schnell an die Grenzen des verfügbaren Speichers stoßen.
Erzähl doch mal, wofür du das brauchst. Vielleicht gibt es da eine bessere Methode.
 
mit so einem programm kannste passwörter knacken, nachdem du weisst welche buchstaben drin vorkommen, richtig?
 
Dafür braucht man aber keine Tabelle (Wie soll die überhaupt aussehen? Meint er vielleicht eher eine Liste?) mit allen Möglichkeiten. Da reicht es, eine nach der anderen zu erzeugen und auszuprobieren.
 
Das soll für ein Spiel sein und in diesem soll der Spielername nach einen bestimmten Clantag durchsucht werden.
Da ich aber nur string.find kenne, dass den Clantag exakt mit dem vorgegebenen abgleicht, müsste ich vorher alle Varianten des Clantags definieren z.B. [Ne] [NE [ne] [nE], was ich aber auch nicht möchte, da ich so ähnliche Sachen auch bei Commands machen möchte.
Das spiel nimmt nur das exakte Command an was man vorher deffiniert hat (mit groß und klein schreibung ) und ich möchte keine 2-8 stelligen Commands selbst umwandeln (bei 8 stellen währen es ja schon 256 Möglichkeiten ...

Würde das echt solange dauern 256 Möglichkeiten durchzugehen?
Mit nen bisl Übung würde ich es sicher in max 15 Minuten auf einen Blatt schaffen und ich bin kein Pc...
 
Tockra schrieb:
Das soll für ein Spiel sein und in diesem soll der Spielername nach einen bestimmten Clantag durchsucht werden.
Da ich aber nur string.find kenne, dass den Clantag exakt mit dem vorgegebenen abgleicht, müsste ich vorher alle Varianten des Clantags definieren z.B. [Ne] [NE [ne] [nE], ...

Und einfach die Clantags mit lower oder upper case in klein bzw großbuchstaben wandeln lassen und dann vergleichen?

Ein bischen mehr infos darüber wo die Originaldaten her kommen und was du damit vor hast, wäre hilfreich. z.B. wenn diese Clantags in einer Datenbank stehn könnte man da was machen.

Wenn du das allerdings auf ein suchfeld einer Webseite eingeben willst, seh ich etwas schwarz.
 
Zuletzt bearbeitet:
Ich rede hier über lua...

Ich möchte einfach nur eine Funktion:

function getAllVersions(string)
--Hier der Code den ich suche
end


diese Funktion soll alle Version des string in Groß und Kleinschreibung als Tabelle zurückgeben (2 hoch Anzahl der Buchstaben) : http://wiki.multitheftauto.com/wiki/DE/Lua_Tutorial#Tabellen
string.upper und string.lower kenne ich schon.
 
Der Vorschlag string.lower zu verwenden bezog sich nicht auf dein Clan-Tag sondern auf den Namen!

Dh du wirst vermutlich eine Art Liste haben mit dem/den Clantags die du suchst? Und du willst jetzt wissen, ob jemand beim Anlegen als Namen dieses Clantag in irgendeiner groß/klein-Schreibweise verwendet?

Wandel den eingegeben Namen in Kleinbuchstaben und vergleich ihn mit dem Clantag, wie es mit Kleinbuchstaben aussehen würde. Dann brauchst du nur einen einzigen Vergleich und keine 2^n die du vorher alle erzeugst.
Genau für sowas sind diese Funktionen string.lower und .upper gemacht worden.
 
Ah danke, dass ist die Lösung für mein erstes Problem ^^


Ein weiteres Problem existiert aber noch.
Um ein Kommando im Spiel zu definieren, muss man folgendes machen:
Code:
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?
 
Tockra schrieb:
würde euch da eine gute Idee einfallen?
ja, lass es so :freak:
Das Kommando "test" wird per Design als "test" definiert, Falscheingaben korrigieren ist keine gute Idee, entweder man hält sich an die Nomenklatur des Kommandos oder man hat Pech gehabt.
 
Jo seh ich auch so.
Wenn du unbedingt großbuchstaben am Anfang zulassen willst, könntest du ja noch unkompliziert
addCommandHandler("Test",tft)
ergänzen.
Bei echten Rechtschreibfehlern oder /tEsT hat man sich dann halt einfach vertippt.
Alle möglichen falsch-Schreibweisen deiner Befehle abdecken wird kaum gehen. Als nächstes kommen dann Rechtschreibfehler wie /tset die noch zu /test führen sollen?

Bei Suchanfragen bei Suchmaschinen wird ja meist auch nach ähnlichen Schreibweisen gesucht im Sinne von "Meinten sie ...?" aber solche Techniken sind an der Stelle im lua-code sicher fehl am Platz
 
Zurück
Oben