Wort in String ersetzen

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

  • Wort in String ersetzen

    Hallo Leute!
    Ich möchte, dass in einem String nach einem bestimmten Wort gesucht wird, und dieses dann durch ein anderes ersetzt bzw gelöscht wird. Also wenn zum Beispiel in einem String steht "Hans hasst Berta" und das Wort "hasst" durch "liebt" ersetzt werden soll, wird statt dem String "Hans hasst Berta" der String "Hans liebt Berta" ausgegeben! Wie kann ich das am einfachsten anstellen?
    Sorry, ich habe keine Anhaltspunkte, wie Code, denn ich habe keine Ahnung, wie ich das machen sollte ?(

    Danke im Voraus!


    MfG flogy
  • GML-Quellcode

    1. string_replace();

    wäre dann wohl das einfachste und passenste ^^
    (Tomaten vor den Augen? :D)

    EDIT: Oh, ja, z.B. so:

    GML-Quellcode

    1. text=string_replace(text,'hasst','liebt'); // Ersetzten
    2. text=string_replace(text,'Tomaten',''); // Löschen

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von copyboy ()

  • Statt ein neues Topic aufzumachen, frage ich nochmal hier!
    Und zwar möchte ich, dass einen Substring, dessen Länge unbekannt ist, kopiert wird. Das Einzige, was man von diesem Substring weiss, sind die Substrings davor und dahinter!

    Ich habs folgendermassen probiert:

    GML-Quellcode

    1. string_copy(line3,string_pos("BekannterSubstring",line3),string_length(?))

    Doch das Problem ist ja, dass ich die Stringlänge des gesuchten Strings nicht kenne...


    MfG flogy

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von flogy ()

  • GML-Quellcode

    1. zwischenstring=string_copy(line3,string_pos("BekannterSubstring davor",line3),string_pos("BekannterSubstring danach",line3)-string_pos("BekannterSubstring davor",line3));
    "Die Erde ist ein Irrenhaus. Dabei könnte das bis heute erreichte Wissen der Menschheit aus ihr ein Paradies machen. Dafür müsste die weltweite Gesellschaft allerdings zur Vernunft kommen."
    - Joseph Weizenbaum
  • Danke, WA! Kling logisch, doch funktioniert leider nicht richtig... Kann es sein, dass es nicht funktioniert, wiel die bekannten Substrings beide nur verschiedenlange Abstände sind? Es ist drum so: Diese ganze Zeile wird aus einer Textdatei gelesen. Dort drin stehen verschiedene Daten, die ich auslesen will, z.B. "name ._.._.._. alter ._.._. wohnort ._.._.._.._. bundesland" (diese ._. stellen Tabulatorabsätze dar)! Dieses Schema kommt do zustande: Das Ganze wird erst aus einer Tabelle im Internet kopiert (manuell) und dann in der Textdatei eingefügt und abgespeichert. Dann wird die GameMaker-Datei gestartet, welche dann diese einzelnen Daten in verschiedene Variablen speichern soll... Da es, wie gesagt, aus einer Tabelle aus dem Internet kommt, hat es da verschiedene Abstände zwischen den Angaben.
    Ein weiteres Problem besteht darin, dass zum Teil alle Angaben ausgefüllt sind, zum Teil aber z.B. das Alter fehlt ==> längerer Zwischenraum!
    Ich hoffe das war verständlich^^
    Danke im Voraus!

    MfG flogy
  • Stimmt, das haut nicht ganz hin. Ich habe es noch mal überarbeitet und mehrmals getestet. Und ich scheine wohl etwas funktionsfähiges geschaffen zu haben. Probiere das mal aus.

    GML-Quellcode

    1. zwischenstring=string_copy(line3,string_pos("BekannterSubstring davor",line3)+string_length("BekannterSubstring davor"),string_pos("BekannterSubstring danach",line3)-string_length("BekannterSubstring davor")-string_pos("BekannterSubstring davor",line3));
    "Die Erde ist ein Irrenhaus. Dabei könnte das bis heute erreichte Wissen der Menschheit aus ihr ein Paradies machen. Dafür müsste die weltweite Gesellschaft allerdings zur Vernunft kommen."
    - Joseph Weizenbaum
  • Ich habe beide Varianten von euch getestet... Und beide gehen nicht :(
    Was ich noch versuchen könnte, wäre, diese Zwischenräume durch z.B. ein "-" zu ersetzen und dann die Anzahl "-" zu messen... Haltet ihr das für sinnvoll, oder brauche ich einfach einen anderen Code, damit es überhaupt funktioniert? Könnte es überhaupt an den Tabulator-Abständen siegen?

    MfG flogy
  • Also. In der Textdatei stht zum Beispiel:
    Fritz-tab-tab-Muster-tab-Mexico-tab-tab-tab-15

    (Da die tabulatorabstände in diesem Forum automatisch in normale Anbstände umgewandelt werden, stellt ein -tab- einen Tabulatorabstand dar)

    Jetzt wird diese Zeile vom GameMaker eingelesen. Und nun möchte ich, dass diese einzelnen Substrings (eben den Namen etc) in Variablen gespeichert werden, wobei ich jeweils weiss, wieviele -tab- es vor und nach dem Substring hat. Allerdings ist es möglich, dass der Nachname z.B. nicht eingetragen ist, und es dann so aussieht:

    Fritz-tab-tab-tab-tab-Mexico-tab-tab-tab-15



    MfG flogy