Funktioniert das ersetzen von einem Text auch mit mehreren Zeilen?

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von Beonadryt.

    Funktioniert das ersetzen von einem Text auch mit mehreren Zeilen?

    Ich habe 2 größe Textboxen (Richtextbox) und möchte das wenn der Benutzer auf einen Button klickt eine Zeile aus der ersten Textbox mit dem kompletten Text aus der zweiten Textbox ausgetauscht wird.


    Folgendes will aber nicht funktionieren:

    VB.NET-Quellcode

    1. RichTextBox1.Text = RichTextBox1.Text.Replace("//platzhalter", RichTextBox2.Text)


    Da stellt sich mir die Frage, ist es überhaupt möglich eine Zeile durch den gesamten Inhalt von einer großen Textbox zu ersetzen?^^
    Nehmen wir an du möchtest die Zeile 6 mit dem Text aus der RTB 2 ersetzten

    VB.NET-Quellcode

    1. RichtTextBox1.Text = RichTextBox1.Text.Replace(RichTextBox1.Lines(5), RichTextBox2.Text)


    Der Index 5 ist die 6. Zeile, da Lines Nullbasiert ist, also die erste Zeile hat den Index 0.
    Bei deiner Methode gibt's leider auch ein Problem.
    Dazu erklär' ich am besten mal was mein Programm später mal machen soll:

    Der Benutzer kann sich aus von mir vorgegeben Codeschnipseln eine Modifikation für ein Spiel erstellen, die er individuell an sich anpassen kann, heisst also: wenn der Benutzer mehrere Solcher Codeschnipseln verwendet weiss ich nicht mehr in welcher Zeile sich der "Platzhalter" befindet. Es soll immer nur der "Platzhalter" mit einem neuen Codeschnipsel ersetzt werden (jeder Codeschnipsel hat diesen Platzhalter ganz unten angeheftet damit der Benutzer noch weitere anbauen kann)

    Ich gebe zu, ich habe mich vielleicht etwas unverständlich ausgedrückt.^^ Im Grunde soll nur das wort "//Platzhalter" mit dem Text aus Textbox2 ersetzt werden.
    O.o aber dann ist der Platzhalter doch unsinnig, wenn der immer ganz unten ist, bsp.:

    Textbox ist leer, ein Codeschnipsel wird hinzugefügt

    Quellcode

    1. Codeschnipsel1
    2. //Platzhalter


    nun wird ein weiter Codeschnipsel zugefügt, mittels Replace dem //Platzhalter

    Quellcode

    1. Codeschnipsel1
    2. Codeschnipsel2
    3. //Platzhalter


    ist dieses Schema richtig?? Wenn ja, würde ich dir zu was anderem raten

    VB.NET-Quellcode

    1. ' Codeschnipsel 1 hinzufügen
    2. Textbox1.Text &= "CodeSchnipsel1" & VbNewLine
    3. ' Codeschnipsel 2 hinzufügen
    4. Textbox1.Text &= "CodeSchnipsel2" & VbNewLine
    5. ' Codeschnipsel 3 hinzufügen
    6. Textbox1.Text &= "CodeSchnipsel3" & VbNewLine
    7. ' Codeschnipsel 2 hinzufügen
    8. Textbox1.Text &= "CodeSchnipsel4" & VbNewLine