Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Не могу понять в чем дело???  [new]
drafty
Member

Откуда: Москва
Сообщений: 648
Public Function focus_(valu)
Dim str(20), chars As String
Dim i, lenght As Integer

lenght = Len(valu)

For i = 0 To lenght
chars = str(i)
Next i

End Function

Короче дело в том,что какое бы значение не принимала переменная i в теле цикла,переменная chars="" Вот я и не могу отдуплиться:Так в чем же дело???
22 янв 07, 10:03    [3673216]     Ответить | Цитировать Сообщить модератору
 Re: Не могу понять в чем дело???  [new]
Miguel1
Member

Откуда: Moscow
Сообщений: 164
а что удивительного-то. ты объявляешь Dim str(20) - пустыми символами.
ты ждешь, что в str(i) само собой что-то появится?!
22 янв 07, 10:07    [3673247]     Ответить | Цитировать Сообщить модератору
 Re: Не могу понять в чем дело???  [new]
drafty
Member

Откуда: Москва
Сообщений: 648
Ты гений!!!Спасибо!Что-то я "слона то и не заметил"(прикинь,второй день парюсь над этой проблемой ))))!!!
22 янв 07, 10:11    [3673274]     Ответить | Цитировать Сообщить модератору
 Re: Не могу понять в чем дело???  [new]
mds_world
Member

Откуда: Ташкент
Сообщений: 27548
Ваша ошибка в том, что вы назвали пользовательскую переменную именем системной функции Акцесс - str. Это зарезервированное имя. Одновременно вы им пользуетесь как функцией. Конфликт.
22 янв 07, 10:11    [3673278]     Ответить | Цитировать Сообщить модератору
 Re: Не могу понять в чем дело???  [new]
drafty
Member

Откуда: Москва
Сообщений: 648
Public Function focus_(valu)
Dim str_(20), chars As String
Dim i, lenght As Integer

str_(20) = valu

For i = 0 To 19
chars = str_(i)
Next i

End Function

Короче все-равно,значение str_(i) все время EMPTY!!!
22 янв 07, 10:17    [3673307]     Ответить | Цитировать Сообщить модератору
 Re: Не могу понять в чем дело???  [new]
mds_world
Member

Откуда: Ташкент
Сообщений: 27548
Проверьте значение valu
22 янв 07, 10:26    [3673382]     Ответить | Цитировать Сообщить модератору
 Re: Не могу понять в чем дело???  [new]
mds_world
Member

Откуда: Ташкент
Сообщений: 27548
Вот этот кусок бессмыслен:
For i = 0 To 19
chars = str_(i)
Next i
В цикле вы присваиваете переменной chars неопределенные значения
22 янв 07, 10:29    [3673401]     Ответить | Цитировать Сообщить модератору
 Re: Не могу понять в чем дело???  [new]
drafty
Member

Откуда: Москва
Сообщений: 648
Вроде как я присваиваю переменной chars значение i-го элемента массива str_
22 янв 07, 10:34    [3673427]     Ответить | Цитировать Сообщить модератору
 Re: Не могу понять в чем дело???  [new]
drafty
Member

Откуда: Москва
Сообщений: 648
Значение valu получает текстовую строку нормально.Это я уже проверил!
22 янв 07, 10:36    [3673440]     Ответить | Цитировать Сообщить модератору
 Re: Не могу понять в чем дело???  [new]
Karfaqen
Member

Откуда:
Сообщений: 7010
drafty
str_(20) = valu
For i = 0 To 19
Это вы 20-му элементу массива присваиваете значение valu, а делаете цикл для всех остальных элементов кроме 20-го. Чего добиваетесь?
22 янв 07, 10:40    [3673470]     Ответить | Цитировать Сообщить модератору
 Re: Не могу понять в чем дело???  [new]
drafty
Member

Откуда: Москва
Сообщений: 648
Короче дело в том,что какое бы значение не принимала переменная i в теле цикла,переменная chars="" Вот я и не могу отдуплиться:Так в чем же дело???

Даже если i=5 или i=6 все равно empty!!!(Размерность-это уже второй вопрос)
22 янв 07, 10:47    [3673517]     Ответить | Цитировать Сообщить модератору
 Re: Не могу понять в чем дело???  [new]
Karfaqen
Member

Откуда:
Сообщений: 7010
drafty
Даже если i=5 или i=6 все равно empty!!!
А чему, по-вашему, должны быть равны элементы массива str_(5) и str_(6), если вы в них ни разу ничего не записали после объявления массива?
22 янв 07, 10:51    [3673552]     Ответить | Цитировать Сообщить модератору
 Re: Не могу понять в чем дело???  [new]
drafty
Member

Откуда: Москва
Сообщений: 648
Public Function focus_(valu)
Dim str_(20), chars As String
Dim i, lenght As Integer

str_(20) = valu
22 янв 07, 10:55    [3673574]     Ответить | Цитировать Сообщить модератору
 Re: Не могу понять в чем дело???  [new]
Программист-Любитель
Member

Откуда:
Сообщений: 16839
Он хочет разобрать строку по символам. В бейсике это делается не так. Ф-ия MID Фы1
22 янв 07, 10:58    [3673598]     Ответить | Цитировать Сообщить модератору
 Re: Не могу понять в чем дело???  [new]
Karfaqen
Member

Откуда:
Сообщений: 7010
drafty
str_(20) = valu
Для чего вы упорно цитируете свой код, никак не меняя его. Я же вам написал уже, что у вас происходит в этой строке:
Karfaqen
Это вы 20-му элементу массива присваиваете значение valu
Хотите входную строку посимвольно записать в массив - послушайте что вам сказал Программист-Любитель
22 янв 07, 11:03    [3673635]     Ответить | Цитировать Сообщить модератору
 Re: Не могу понять в чем дело???  [new]
Владимир Саныч
Member

Откуда: Израиль (причем это 1 человек, а не 2 => прошу на ты)
Сообщений: 40414
drafty
Public Function focus_(valu)
Dim str_(20), chars As String
Dim i, lenght As Integer

str_(20) = valu

Между прочим, при таком описании str_ и i получают тип Variant.
22 янв 07, 11:14    [3673713]     Ответить | Цитировать Сообщить модератору
 Re: Не могу понять в чем дело???  [new]
drafty
Member

Откуда: Москва
Сообщений: 648
Конкретное предложение(в виде строк кода)?
22 янв 07, 11:19    [3673749]     Ответить | Цитировать Сообщить модератору
 Re: Не могу понять в чем дело???  [new]
Ламер Ламерович
Member

Откуда: от верблюда
Сообщений: 996
drafty
Конкретное предложение(в виде строк кода)?

для предложения надо знать, что вы хотите.
Вы нигде этого не сказали.
22 янв 07, 11:31    [3673823]     Ответить | Цитировать Сообщить модератору
 Re: Не могу понять в чем дело???  [new]
drafty
Member

Откуда: Москва
Сообщений: 648
Я хочу,чтобы бы значение str_(i) было не Empty,а символ строки valu (при пошаговой отладке)
22 янв 07, 12:42    [3674462]     Ответить | Цитировать Сообщить модератору
 Re: Не могу понять в чем дело???  [new]
mds_world
Member

Откуда: Ташкент
Сообщений: 27548
drafty
Я хочу,чтобы бы значение str_(i) было не Empty,а символ строки valu (при пошаговой отладке)

   For i = 0 To 20
      str_(i) = Mid(valu,i,1)
   Next i
22 янв 07, 12:56    [3674596]     Ответить | Цитировать Сообщить модератору
 Re: Не могу понять в чем дело???  [new]
mds_world
Member

Откуда: Ташкент
Сообщений: 27548
Просмотрел. Должно быть
For i = 0 To 19
22 янв 07, 12:57    [3674604]     Ответить | Цитировать Сообщить модератору
 Re: Не могу понять в чем дело???  [new]
Karfaqen
Member

Откуда:
Сообщений: 7010
mds_world

For i = 0 To 20
str_(i) = Mid(valu,i,1)
Next i

Ага, только строки начинаются с 1-го символа.
22 янв 07, 13:03    [3674642]     Ответить | Цитировать Сообщить модератору
 Re: Не могу понять в чем дело???  [new]
drafty
Member

Откуда: Москва
Сообщений: 648
А что,разве сразу нельзя присвоить целую строку массиву str_???
22 янв 07, 14:31    [3675318]     Ответить | Цитировать Сообщить модератору
 Re: Не могу понять в чем дело???  [new]
drafty
Member

Откуда: Москва
Сообщений: 648
Public Function focus_(valu)
Dim str_(20), chars As String
Dim i, lenght As Integer

str_(20) = valu /*Вот так например
22 янв 07, 14:31    [3675322]     Ответить | Цитировать Сообщить модератору
 Re: Не могу понять в чем дело???  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 18324
str_(20) = valu
так ты присваиваешь значкние 20 элементу

valu ="1234567890"

str_ = valu


так ты присвоишь строке str_ строку valu
22 янв 07, 14:35    [3675344]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft Access Ответить