Страница: 1 |
Страница: 1 |
Вопрос: Перебор символов
Добавлено: 16.10.09 15:17
Автор вопроса: maza_____ | Web-сайт:
Подскажите плиз почему не работает код, вроде всё так написал:
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-сайт:
Профиль | | #1
Добавлено: 16.10.09 15:29
Блин, туплю
Номер ответа: 2
Автор ответа:
Skywalker
ICQ: 300-70-6пятьЪ
Вопросов: 62
Ответов: 545
Web-сайт:
Профиль | | #2
Добавлено: 16.10.09 17:15
а зачем ты сделал так тупо?
Номер ответа: 3
Автор ответа:
maza_____
ICQ: 9968842
Вопросов: 40
Ответов: 337
Web-сайт:
Профиль | | #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-сайт:
Профиль | | #6
Добавлено: 17.10.09 15:20
Спасибо за информацию
Номер ответа: 7
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #7
Добавлено: 22.10.09 10:59
Здесь стоито t="3"c чтоб не было лишней конвертации
По теме вопроса - код неверный, поскольку удаляешь символы из середины, нужно завести еще один счетчик в котором считать удаленные символы, иначе код начнет удалять не то что нужно и потом выйдет за пределы массива.
Как вариант - обратить строку (Reverse) и проходить от последнего символа к первому, тогда в дополнительном счетчике не будет необходимости.