..удалить строку..

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

..удалить строку..

Сообщение skulida » 09.11.2005 (Ср) 14:42

что-то никак не соображу...
надо в текстовом блоке удалить все строки, начинающиеся с
"&NEW!" до конца строки.
вот такое вообще имеет право на жизнь (хотя не работает не удаляет
всю строку):

tempStringEnd = Split(SInput, "&NEW!")
N = UBound(tempStringEnd)
For I = 1 To N
nfinds = InStr(1, SInput, "&NEW!")
If nfinds > 0 Then
nfindsend = InStr(nfinds, SInput, vbCrLf)
Mid(SInput, nfinds, (nfindsend - nfinds)) = vbCrLf
End If
Next I

укажите пожалуйста на ошибку или подскажите как это лучше сделать??

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 09.11.2005 (Ср) 14:55

dim v as variant, i as long

v=split(sinput, vbnewline)
for i=lbound(v) to ubound(v)
if left(v(i),5)="&NEW!" then v(I)=vbnullstring
next
sinput=join(v,vbnullstring)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

skulida
Обычный пользователь
Обычный пользователь
 
Сообщения: 56
Зарегистрирован: 28.06.2003 (Сб) 12:16
Откуда: Санкт-Петербург

Сообщение skulida » 09.11.2005 (Ср) 15:34

Спасибо...
но, указанный пример обрезает только названное начало строки,
т.е. ) &NEW!, а нужно удалить еще и то что плсе идет до перехода на другую строку..
т.е.
&NEW! текст который нужно удалить вместе с ....
&KOD!12345678
&END!
должно остаться
&KOD!12345678
&END!
..

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 09.11.2005 (Ср) 15:45

Ошибка есть, но не та, что ты сказал.
Ты вообще код запускал?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

skulida
Обычный пользователь
Обычный пользователь
 
Сообщения: 56
Зарегистрирован: 28.06.2003 (Сб) 12:16
Откуда: Санкт-Петербург

Сообщение skulida » 09.11.2005 (Ср) 15:52

запускал ..только немного изменив..
твой пример обрезал все переходы на новую строку но
не убрал нужную..

skulida
Обычный пользователь
Обычный пользователь
 
Сообщения: 56
Зарегистрирован: 28.06.2003 (Сб) 12:16
Откуда: Санкт-Петербург

Сообщение skulida » 09.11.2005 (Ср) 16:06

вообще то нет :)
я нанакосячил...
...
хотя нет строку убирает, но и все переходы на другую строку тоже..

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 09.11.2005 (Ср) 16:09

if left(v(i),5)="&NEW!" then v(I)=vbnewline else v(i)=v(i) & vbnewline
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

skulida
Обычный пользователь
Обычный пользователь
 
Сообщения: 56
Зарегистрирован: 28.06.2003 (Сб) 12:16
Откуда: Санкт-Петербург

Сообщение skulida » 09.11.2005 (Ср) 16:17

да, спасибо!!
ошибку уже понял..
в моем варианте

v = Split(sinput, vbNewLine)
For i = LBound(v) To UBound(v)
If Left(v(i), 5) = "&new!" Then v(ii) = vbNull String Else v(i) = v(i) & vbNewLine
Next
sinput = Join(v, vbNullString)

потому что если
then v(I)=vbnewline else v(i)=v(i) & vbnewline

то на месте убираемой строки - пустая строка

СПасибо!!


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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 162

    TopList