Teil im Wort/in Zeile finden (Automatisiert)

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Teil im Wort/in Zeile finden (Automatisiert)

      Hallo!

      Da ich neulich ein Problem mit dem Erkennen eines Teils in einem Wort/Satz/Zeile hatte, dachte ich mir, ich mach dadraus jetzt mal ein Script und biete es denen an, die sowas auch brauchen/suchen.
      Ich wüsste zwar keinen umfangreichen Nutzen dafür, aber vielleicht braucht das ja jemand :)

      scr_char_at:

      GML-Quellcode

      1. ///scr_char_at(string_ges, string_geg);
      2. //argument0 = Gesuchtes Wort
      3. //argument1 = Wort/Satz/Zeile, in dem/der gesucht werden soll
      4. var i, laenge, buchstabe, wortgesucht, wortgesucht_g;
      5. i = 0;
      6. laenge = 0;
      7. buchstabe = "";
      8. wortgesucht = "";
      9. wortgesucht_g = "";
      10. for (i = 1; i < string_length(argument0)+1; i+=1;)
      11. {
      12. buchstabe[i] = string_char_at(argument0, i);
      13. wortgesucht+=string(buchstabe[i]);
      14. }
      15. wortgesucht_g = wortgesucht;
      16. wortgesucht = "";
      17. i = 0;
      18. while(laenge < string_length(argument0))
      19. {
      20. laenge+=1;
      21. cur = string_char_at(argument1,i+laenge);
      22. if string(cur) == string(buchstabe[laenge])
      23. {
      24. wortgesucht+=string(buchstabe[laenge])
      25. if wortgesucht = wortgesucht_g
      26. {
      27. //Das was passieren soll...
      28. }
      29. }
      30. else
      31. {
      32. if i < string_length(argument1)
      33. {
      34. wortgesucht = "";
      35. laenge = 0;
      36. i+=1;
      37. }
      38. else
      39. {
      40. break;
      41. }
      42. }
      43. }
      Alles anzeigen


      Ausführung im Objekt:

      GML-Quellcode

      1. scr_char_at("test","tebladasisteintestblate");


      Das Wort "test" wird im Wort "tebladasisteintestblate" gesucht. Da es vorhanden ist, sollte es auch bei Ausführung gefunden werden und dementsprechend das machen, was ihr im Script eingetragen habt.

      Nachteile:
      - Groß- und Kleinschreibung
      Dafür müsstet ihr ein extra Argument erstellen und die Schleife nochmal überarbeiten. Müsste dann später in der Ausfürung wiefolgt aussehen:

      GML-Quellcode

      1. scr_char_at("test","TEST","tebladasisteintestblate");

      Also, dass einmal jeweils der Groß- und der Kleinbuchstabe geprüft wird. Sollte jetzt keine allzugroße Arbeit sein, wenn man's verstanden hat :D

      Ich hoffe das ist nicht zu nutzlos und es können zumindest ein paar damit was anfangen :D

      -----
      Credits gehen zu 80% an mich für die Kodierung und zu 20% an Gametrickser für den Denkanstoß!

      Liebe Grüße
      icqgamer

      Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von icqgamer ()

    • Nettes Script, kann man sicher mal gebrauchen, ich persönlich würde das noch etwas verändern.
      1.wird die Variable spr nicht genutzt
      2.würde ich per true und false zurückgeben lassen, ob das Wort enthalten ist oder nicht, sodass man die auszuführende AKtion bei Gefundenwerden nicht immer ins Script schreiben muss, sondern dass variabler einsetzen kann, z.B. so:

      GML-Quellcode

      1. wert = scr_char_at("icq","icqgamer")
      2. if (wert) {
      3. show_messsage("Boar, das hätte ich nicht gedacht")
      4. }


      "Korrigierter" Code

      GML-Quellcode

      1. ///scr_char_at(string_ges, string_geg);
      2. //argument0 = Gesuchtes Wort
      3. //argument1 = Wort/Satz/Zeile, in dem/der gesucht werden soll
      4. var i, laenge, buchstabe, wortgesucht, wortgesucht_g,gefunden;
      5. i = 0;
      6. laenge = 0;
      7. buchstabe = "";
      8. wortgesucht = "";
      9. wortgesucht_g = "";
      10. gefunden = false;
      11. for (i = 1; i < string_length(argument0)+1; i+=1;)
      12. {
      13. buchstabe[i] = string_char_at(argument0, i);
      14. wortgesucht+=string(buchstabe[i]);
      15. }
      16. wortgesucht_g = wortgesucht;
      17. wortgesucht = "";
      18. i = 0;
      19. while(laenge < string_length(argument0))
      20. {
      21. laenge+=1;
      22. cur = string_char_at(argument1,i+laenge);
      23. if string(cur) == string(buchstabe[laenge])
      24. {
      25. wortgesucht+=string(buchstabe[laenge])
      26. gefunden = true
      27. }
      28. else
      29. {
      30. if i < string_length(argument1)
      31. {
      32. wortgesucht = "";
      33. laenge = 0;
      34. i+=1;
      35. }
      36. }
      37. }
      38. return gefunden
      Alles anzeigen

    • Hallo,

      das mit der spr-Variable sollte da eigentlich garnichtmehr drinne stehen, das hatte ich für meinen persönlichen Teil in der App gebraucht :D
      Danke für den Hinweis, habs rausgenommen.

      Deine Methode ist auch eine gute Idee, ich überlege mir mal, ob ich das in meiner App so übernehme :)

      Liebe Grüße
      icqgamer
    • Kann man dafür nicht einfach die Funktion string_count(substr, str); benutzen? Diese Funktion gibt dann sogar zurück wie oft substr in str vorkommt. Und mit das mit der Groß- und Kleinschreibung sollte damit gelöst sein, wenn man beide Strings mit der Funktion string_upper( str ); in Großbuchstaben konvertiert. Oder habe ich da etwas nicht verstanden und das Skript macht etwas völlig anderes?