Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: Перебор символов Добавлено: 16.10.09 15:17  

Автор вопроса:  maza_____ | Web-сайт: vkontakte.ru/id25563295 добавляйтесь в друзья)) | ICQ: 9968842 
Подскажите плиз почему не работает код, вроде всё так написал:
    Dim nnm As String = InputBox("", "")
        Dim i As Integer
        For Each t As Char In nnm
            i += 1
            If t = "3" Then
                nnm = nnm.Remove(i - 1, 1)
            End If
        Next
        MsgBox(nnm)


Заранее благодарен.

Ответить

  Ответы Всего ответов: 7  

Номер ответа: 1
Автор ответа:
 maza_____



ICQ: 9968842 

Вопросов: 40
Ответов: 337
 Web-сайт: vkontakte.ru/id25563295 добавляйтесь в друзья))
 Профиль | | #1
Добавлено: 16.10.09 15:29
Блин, туплю
  1.       Dim nnm As String = InputBox("", "")
  2.         Dim i As Integer = 0
  3.         For Each t As Char In nnm
  4.             i += 1
  5.             If t = "3" Then
  6.                 nnm = nnm.Remove(i - 1, 1)
  7.                 i = i - 1
  8.             End If
  9.         Next
  10.         MsgBox(nnm)
  11.     End Sub

Ответить

Номер ответа: 2
Автор ответа:
 Skywalker



ICQ: 300-70-6пятьЪ 

Вопросов: 62
Ответов: 545
 Web-сайт: iSkywalker.ru
 Профиль | | #2
Добавлено: 16.10.09 17:15
а зачем ты сделал так тупо?
  1. Dim nnm As String = InputBox("", "")
  2.         nnm = nnm.Replace("3", "")
  3.         MsgBox(nnm)

Ответить

Номер ответа: 3
Автор ответа:
 maza_____



ICQ: 9968842 

Вопросов: 40
Ответов: 337
 Web-сайт: vkontakte.ru/id25563295 добавляйтесь в друзья))
 Профиль | | #3
Добавлено: 16.10.09 17:42
Мне нужно было реализовать перебор

Ответить

Номер ответа: 4
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #4 Добавлено: 17.10.09 10:46
RTFM

Ответить

Номер ответа: 5
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #5 Добавлено: 17.10.09 10:47
внутри цикла вида For Each нельзя удалять/добавлять элементы.. это нарушает итератор

Ответить

Номер ответа: 6
Автор ответа:
 maza_____



ICQ: 9968842 

Вопросов: 40
Ответов: 337
 Web-сайт: vkontakte.ru/id25563295 добавляйтесь в друзья))
 Профиль | | #6
Добавлено: 17.10.09 15:20
Спасибо за информацию:)

Ответить

Номер ответа: 7
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #7 Добавлено: 22.10.09 10:59
If t = "3" Then

Здесь стоито t="3"c чтоб не было лишней конвертации

По теме вопроса - код неверный, поскольку удаляешь символы из середины, нужно завести еще один счетчик в котором считать удаленные символы, иначе код начнет удалять не то что нужно и потом выйдет за пределы массива.

Как вариант - обратить строку (Reverse) и проходить от последнего символа к первому, тогда в дополнительном счетчике не будет необходимости.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам