Страница: 1 |
Страница: 1 |
Вопрос: Народ помогите! В чём ошибка?
Добавлено: 13.11.05 02:33
Автор вопроса: Cooller
В общем надо из произвольной строки вырезать случайные числа и тут происходит глюк...Почему? В чём ошибка?
' a$- строка ,t- число которое долно быть вырезано
a$ = "123456789"
t = 1
a$ = Mid$(a$, 1, t - 1) & Mid$(a$, t + 1, Len(a$))
Print a$, Len(a$)
'Вырезается "1", остаётся "23456789"...Всё нормально
t = 3
a$ = Mid$(a$, 1, t - 1) & Mid$(a$, t + 1, Len(a$))
Print a$, Len(a$)
'Вырезается "4"?! Почему???
t = 6
a$ = Mid$(a$, 1, t - 1) & Mid$(a$, t + 1, Len(a$))
Print a$, Len(a$)
'Вырезается "8"?! Почему???
t = 8
a$ = Mid$(a$, 1, t - 1) & Mid$(a$, t + 1, Len(a$))
Print a$, Len(a$)
'Вырезается число после "9", которого нет! Почему???
Ответы
Всего ответов: 5
Номер ответа: 1
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #1
Добавлено: 13.11.05 08:26
Потому что у тебя вырезаются не числа из строки, а символы по указанной позиции. После каждого вырезания значение a$ меняется и по указанной позиции оказываются уже совсем другие символы.
Номер ответа: 2
Автор ответа:
Cooller
Вопросов: 1
Ответов: 6
Профиль | | #2
Добавлено: 13.11.05 23:19
Всё догнал, спасибо.
Номер ответа: 3
Автор ответа:
Neco
ICQ: 247906854
Вопросов: 133
Ответов: 882
Web-сайт:
Профиль | | #3
Добавлено: 14.11.05 01:55
Не мерил, но имхо гораздо экономичнее делать так:
private sub PrepareCut(refStr as string, strCut as string)
dim v as long
v=1
v=instr(v,refStr,strCut)
do v>0
mid$(refStr,v,len(strCut))=string$(len(strCut,vbnullchar)
loop
end sub
private sub Cut(refStr as string)
refStr=Replace$(refStr,vbnullchar,""
end sub
и юзать:
dim strToCut as string
strToCut="123456789"
PrepareCut strToCut,"2"
PrepareCut strToCut,"4"
PrepareCut strToCut,"6"
Cut strToCut
Номер ответа: 4
Автор ответа:
Cooller
Вопросов: 1
Ответов: 6
Профиль | | #4
Добавлено: 14.11.05 23:59
Я сделал немного подругому...
z$="123456789"
r=5
z$ = Mid$(z$, 1, r - 1) + " " + Mid$(z$, r + 1, Len(z$))
z$=val(z$)
и т.д.
Номер ответа: 5
Автор ответа:
Neco
ICQ: 247906854
Вопросов: 133
Ответов: 882
Web-сайт:
Профиль | | #5
Добавлено: 15.11.05 21:06
Очень смешно 8)