Удаление первой строки TextBox'a (Multi)

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
xsting
Новичок
Новичок
 
Сообщения: 28
Зарегистрирован: 24.03.2004 (Ср) 16:42
Откуда: Украина, Крым

Удаление первой строки TextBox'a (Multi)

Сообщение xsting » 25.09.2005 (Вс) 13:00

Как? :roll: :arrow:
Мне надо, что бы удалялась первая строка из TextBox'a (Multi), когда число строк будет больше 3х. Вообщем что-то типа лог файла...
"Мы верим - этот мир реален"
(Нави)

skiperski
Идеолог
Идеолог
Аватара пользователя
 
Сообщения: 1386
Зарегистрирован: 25.06.2002 (Вт) 15:52

Сообщение skiperski » 25.09.2005 (Вс) 13:16

Код: Выделить всё
Option Explicit

Dim lineNr As Long

Private Sub Command1_Click()
    lineNr = lineNr + 1
    Text1.Text = Text1.Text & vbCrLf & "line " & lineNr
End Sub

Private Sub Form_Load()
    Text1.Text = "line 1" & vbCrLf & "line2" & vbCrLf & "line 3" & vbCrLf & "line 4"
    lineNr = 4
End Sub

Private Sub Text1_Change()
   
    Dim t As String
    Dim p As Long
    Dim i As Long
   
    t = Text1.Text
   
    'удалить пустые строки
    Do While (InStr(1, t, vbCrLf & vbCrLf))
        t = Replace(t, vbCrLf & vbCrLf, vbCrLf)
    Loop
   
    'удалить ведущие пустые строки
    Do While (Left$(t, 2) = vbCrLf)
        t = Mid$(t, 3)
    Loop
   
    'удалить концевые пустые строки
    Do While (Right$(t, 2) = vbCrLf)
        t = Left$(t, Len(t) - 2)
    Loop
   
    'найти последние 3 троки, т.е. найти третий vbCrLf справа
    p = -1
    For i = 1 To 3
        p = InStrRev(t, vbCrLf, p)
        If (p = 0) Then GoTo ok
    Next
    If (p) Then t = Mid$(t, p + 2)
   
ok:
    Text1.Text = t
   
End Sub

Ели контроль пустых строк не нужен, то достаточно последнего блока.

xsting
Новичок
Новичок
 
Сообщения: 28
Зарегистрирован: 24.03.2004 (Ср) 16:42
Откуда: Украина, Крым

Сообщение xsting » 25.09.2005 (Вс) 14:13

огромное спасибо! :D
и ещё вопрос: как сделать так, что бы TextBox (в 4 строки, имея, скажем 10 строк) показывался сконца (тоесть последние 4 строки, а не первые 4) и что бы он автоматом пролистывался, при добавлении новой строки???
Заранее спасибо! 8)
"Мы верим - этот мир реален"
(Нави)

skiperski
Идеолог
Идеолог
Аватара пользователя
 
Сообщения: 1386
Зарегистрирован: 25.06.2002 (Вт) 15:52

Сообщение skiperski » 25.09.2005 (Вс) 16:51

Вопрос сформулирован сумбурно.
Код: Выделить всё
Option Explicit

Dim lineNr As Long

Private Sub Command1_Click()
    lineNr = lineNr + 1
    Text1.Text = Text1.Text & vbCrLf & "line " & lineNr
    Text1.SelStart = Len(Text1.Text)
End Sub

xsting
Новичок
Новичок
 
Сообщения: 28
Зарегистрирован: 24.03.2004 (Ср) 16:42
Откуда: Украина, Крым

Сообщение xsting » 25.09.2005 (Вс) 17:28

2skiperski
старался 8)
"Мы верим - этот мир реален"
(Нави)


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 84

    TopList