Bestimmte Zeile ersetzen

mafiamix

Mitglied
Hallo,

wie ist es denn möglich, dass man eine bestimmte Zeile einer Textbox ersetzt?
Habe es bisher so versucht, dass ich diese Zeile markiere, aber da sich der Inhalt der Zeile immer verändern kann, kann man keine endgültige Länge angeben.
Ist das dann überhaupts möglich, weil sich der Inhalt verändern kann?
In dieser Zeile befinden sich nur Zahlen - also keine Buchstaben o.ä.

Wäre nett, wenn mir da jemand weiterhelfen könnte.


Lg,

mafiamix
 
Eine möglichkeite wäre über Regex
Code:
string input = string.Format("Eine Zeile {0}noch ne Zeile {0}123456 {0}Noch ne Zeile", Environment.NewLine);
string output = Regex.Replace(input, "[0-9].*", "Zu ersetzende Text", RegexOptions.Multiline);
Bei diesem Code werden allerdings alle Zeilen ersetzt die aus numerischen Werten bestehen.

Die TextBox selbst hält auch noch eine Eigenschaft Lines.
Diese hält alle Zeilen einer TextBox.
Löschen könntest du da zum Beispiel so:
Code:
List<string> list = new List<string>(textBox.Lines);
list.RemoveAt(2); //entfernt die dritte Zeile (Index beginnt bei 0)
textBox.Lines = list.ToArray();
 
Also ich hab jetzt mal den 2. Code von dir für .net probiert, aber entweder hab ich da was falsch gemacht oder es geht bei .net nicht.
Habs mit dem Code versucht

Code:
            Dim list As String


            list = TextBox2.Lines
            list.Remove(2)                  'entfernt die dritte Zeile (Index beginnt bei 0)
            TextBox2.Lines = list.ToString

Aber dann wird immer angezeigt, dass der Wert vom Typ "1-dimensionales Array von String" nicht zu "String" konvertiert werden kann.

Hab es dann auch davor schon mal mit nem anderen Code versucht:

Code:
Dim zuErsetzen As Array


    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Ersetzen(Listbox2.SelectedItem, Label12.Text) 
        TextBox2.Lines = zuErsetzen

    End Sub


    Sub Ersetzen(ByVal Zeile As Integer, ByVal ersetzterText As String)

        zuErsetzen = TextBox2.Lines
         
        Try
            zuErsetzen(Zeile - 1) = ersetzterText
        Catch
            MsgBox("Zeile nicht Vorhanden")
        End Try


    End Sub

Der Code funktioniert auch, allerdings fängt bei mir die Abfrage beim Index an und somit bei 0 und bei dem Code fängt es erst bei 1 an.
Weiß vielleicht jemand, wie ich bei meinem Code das Ersetzen auch beim Index anfange? Dann würde alles funktionieren.
 
nicht list.ToString sondern list.ToArray, Lines erwartet string[].

zu deinem 2ten Code
wie hast du den die ListBox gefüllt das die Zeilennummer nicht bei 0 beginnt?
 
Zurück