Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 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-сайт: basicproduction.nm.ru
 Профиль | | #1
Добавлено: 13.11.05 08:26
Потому что у тебя вырезаются не числа из строки, а символы по указанной позиции. После каждого вырезания значение a$ меняется и по указанной позиции оказываются уже совсем другие символы.

Ответить

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



Вопросов: 1
Ответов: 6
 Профиль | | #2 Добавлено: 13.11.05 23:19
Всё догнал, спасибо.

Ответить

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



ICQ: 247906854 

Вопросов: 133
Ответов: 882
 Web-сайт: neco.pisem.net
 Профиль | | #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-сайт: neco.pisem.net
 Профиль | | #5
Добавлено: 15.11.05 21:06
Очень смешно 8)

Ответить

Страница: 1 |

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



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