Inhalt einer Textbox ändern

Hallo,

wie kann man den Inhalt einer mehrzeiligen Textbox verändern,
z.B. Zeilen löschen und verschieben.

Danke

Gruß
Gunter

Hallo,

wie kann man den Inhalt einer mehrzeiligen Textbox verändern,
z.B. Zeilen löschen und verschieben.

am Besten den gesamten Text in einen String laden, mit
Arr = Split(txt,VbCrLf)
die Zeilen in ein Array schieben, bearbeiten, mit Join wieder zusammenfügen und zurück schreiben.

Gruß, Rainer

Hallo,

Hi,

wie kann man den Inhalt einer mehrzeiligen Textbox verändern,
z.B. Zeilen löschen und verschieben.

Ich würde das jetzt mit Split(Text1, Chr(10)) versuchen. Also z. B. so:

Eine TextBox und ein Button auf die Form

Option Explicit

Private Sub Command1\_Click()
Dim TextZeilen As Variant
TextZeilen = Split(Text1, Chr(10))

'zum Test jede zweite Zeile löschen
Text1 = ""
Dim i As Integer
For i = 0 To UBound(TextZeilen) Step 2
 Text1 = Text1 & TextZeilen(i) & Chr(10)
Next i
End Sub

Danke
Gruß
Gunter

Gruß Simon

Mist, da war jemand schneller als ich…
…aber maximal 59 Sekunden xD

Inhalt einer Textbox ändern (Gunter, 1.2.2008 15:06)
 \* [new]Re: Inhalt einer Textbox ändern (Simon, 1.2.2008 **15:20** ) 
 \* [new]Re: Inhalt einer Textbox ändern (Rainer Fischer, 1.2.2008 **15:20** )

Hi Simon,

Ich würde das jetzt mit Split(Text1, Chr(10)) versuchen.

Du scheinst Linux geschädigt zu sein. :smile:
In Windows werden die Zeilen nicht nur durch CR getrennt, da fehlt noch Linefeed. VB hat dafür die Konstante VbCrLf.

Gruß, Rainer

1 Like

Hi Simon,

aber mit (fast) identischem Text! :smile:

Gruß, Rainer

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Rainer

Du scheinst Linux geschädigt zu sein. :smile:

Mhm nein, viel schlimmer würde ich sagen: Vista verseucht, ich hatte nie wirklich Linux…

In Windows werden die Zeilen nicht nur durch CR getrennt, da
fehlt noch Linefeed. VB hat dafür die Konstante VbCrLf.

Okay das wusste ich nicht. Ich habe auch sonst immer Chr(10) & Chr(13) geschrieben, bis ich gemerkt habe, dass es auch ohne 13 geht. Ich nehm ab jetzt wohl auch VbCrLf.

Gruß, Rainer

Gruß, Simon

Hallo zusammen,

funktioniert bestens.

Vielen Dank.

Gruß
Gunter

Hi Gunter,

funktioniert bestens.

das freut mich, zeig doch mal den Code. Eventuell haben wir ja noch ein paar Tipps. :smile:

Gruß, Rainer

Hi Rainer,

mein Coding sieht jetzt so aus:

arr = Split(Clipboard.GetText, vbCrLf)

For i = 0 To UBound(arr)
If Trim(arr(i)) „“ Then
text(j) = arr(i)
j = j + 1
End If
Next i

If j > 0 Then
For i = 0 To j - 1
If NumbersOnly(Left(text(i + 1), 2)) = True And _
NumbersOnly(Mid(text(i + 1), 4, 2)) = True And _
NumbersOnly(Mid(text(i + 1), 7, 4)) = True Then
text_neu(m) = text(i + 1) & " " & text(i)
m = m + 1
End If
Next i

If m > 0 Then
Text1.text = Join(text_neu, vbCrLf)
End If

End If

Man könnte dies sicher auch in einer Schleife erledigen, war halt quick and dirty :wink:

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi Gunter,

für mich sieht das gut aus, ohne daß Du Probleme hast, habe ich keine weiteren Tipps. :smile:

Gruß, Rainer