Visual Basic, .NET, ASP, VBScript
 

   
   
     

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

Страница: 1 | 2 |

 

  Вопрос: Извечная Ошибка на VB 6: Block without End If... Добавлено: 19.10.10 21:48  

Автор вопроса:  Victor
Коллеги, да что там коллеги - Форумчане,
помогите найти ошибку - что ему окоянному ещё надо?

Програмка-помощник: набираешь что-то...а на аглийском, и чтобы заново не набирать - запускаешь програмку и он в окне всё "переводит" на русский!
Код программы вот такой:
___________________________________________________

Public Function ConvertToRus(ByVal InputVal As String) As String

Dim TypeOfConvert As Integer, ConvertionMassive(1 To 2) As String
10: x = x + 1
TypeOfConvert = 0
If Asc(Mid(InputVal, x, 1)) > 58 And Asc(Mid(InputVal, x, 1)) < 123 Then
TypeOfConvert = 1
Else
If Asc(Mid(InputVal, x, 1)) > 128 And Asc(Mid(InputVal, x, 1)) < 243 Then
TypeOfConvert = 2
If TypeOfConvert = 0 Then GoTo 10
End If
ConvertionMassive(1) = "йцукен" /// тут вся раскладка
ConvertionMassive(2) = "qwerty" /// для экономии места
For x = 1 To Len(InputVal)
ConvertToRus = ConvertToRus & Mid(ConvertionMassive(TypeOfConvert), InStr(1, ConvertionMassive(temp), Mid(InputVal, x, 1)), 1)
If TypeOfConvert = 1 Then
temp = 2
Else
temp = 1
End If

Next x

End Function
___________________________________________________

Спасибо за помощь!

Ответить

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

Номер ответа: 1
Автор ответа:
 Серёга



ICQ: 262809473 

Вопросов: 17
Ответов: 561
 Web-сайт: houselab.narod.ru
 Профиль | | #1
Добавлено: 19.10.10 22:20
вставь End If после TypeOfConvert = 2

Ответить

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



Вопросов: 1
Ответов: 3
 Профиль | | #2 Добавлено: 19.10.10 23:34
Пробовал и так и этак - не хочет, хоть убей!
Ссылается на 1-ую строчку:

Public Function ConvertToRus...

А ежели "химичить" с циклами, варианта два:

- If without EndIf;
- Next without For.

Одни растройста!

Ответить

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



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

Вопросов: 62
Ответов: 545
 Web-сайт: iSkywalker.ru
 Профиль | | #3
Добавлено: 20.10.10 01:02
  1. Public Function ConvertToRus(ByVal InputVal As String) As String
  2.  
  3. Dim TypeOfConvert As Integer, ConvertionMassive(1 To 2) As String, x As Integer
  4. TypeOfConvert = 0
  5. x = 1
  6. While x < Len(InputVal) And TypeOfConvert = 0
  7.     If Asc(Mid(InputVal, x, 1)) > 58 And Asc(Mid(InputVal, x, 1)) < 123 Then
  8.         TypeOfConvert = 1
  9.         temp = 2
  10.     ElseIf Asc(Mid(InputVal, x, 1)) > 128 And Asc(Mid(InputVal, x, 1)) < 243 Then
  11.         TypeOfConvert = 2
  12.         temp = 1
  13.     End If
  14. Wend
  15. If TypeOfConvert = 0 Then ConvertTorRus = InputVal
  16. ConvertionMassive(1) = "йцукен"
  17. ConvertionMassive(2) = "qwerty"
  18. For x = 1 To Len(InputVal)
  19. ConvertToRus = ConvertToRus & Mid(ConvertionMassive(TypeOfConvert), InStr(1, ConvertionMassive(temp), Mid(InputVal, x, 1)), 1)
  20. Next x
  21.  
  22. End Function

Ответить

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



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #4
Добавлено: 20.10.10 01:26
  1. if <condition> then 'Условие
  2.     <code>
  3. elseif <condition> then 'Условие2
  4.     <code>
  5. ... 'Условие3,4,...,n
  6. else 'В остальных случаях
  7.     <code>
  8. end if
  9.  
  10. if <condition> then <code> else <code>
  11.  
  12. if <condition> then <code> _
  13. else <code>

Ответить

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



Вопросов: 1
Ответов: 3
 Профиль | | #5 Добавлено: 20.10.10 19:41
Skywalker, спасибо большое за помощь - ошибка пропала!!!
Всё просто супер - радует, что ошибок нет...однако же вместе с ошибками пропало всё - в том плане, что запускаю ехе...для проверки, ввожу строчку "qwerty" - так "йцукен" мне ещё ни разу и не улыбнулся...!;-)

Ответить

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



Вопросов: 1
Ответов: 3
 Профиль | | #6 Добавлено: 20.10.10 19:50
Winand, спасибо за помощь!

Только не работает...зуб даю, не работает!
До этого тоже пробовал конструкцию с ElseIf...либо я - дурак, либо лыжи не едут!;-)

Если сможешь, напиши, пожалуйста, код с конструкцией ElseIf...только чур, чтобы ошибку не выдавал:
Block If without End If!

Ответить

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



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #7
Добавлено: 21.10.10 21:06
  1. dim a as long
  2. a = 1
  3. if a = 0 then
  4.     debug.print "cannot get here"
  5. elseif a = 1 then
  6.     debug.print "here it is"
  7. else
  8.     debug.print "cannot get here too"
  9. end if

Ответить

Номер ответа: 8
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #8 Добавлено: 21.10.10 22:47
Где то видел более наглядный пример, типа
  1.  
  2. Dim a as Boolean
  3. a = True
  4. if a = False then
  5.     debug.print "cannot get here"
  6. elseif a = True then
  7.     debug.print "here it is"
  8. else
  9.     debug.print "no no no, David Blaine, no no no"
  10. end if

Ответить

Номер ответа: 9
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #9
Добавлено: 21.10.10 23:06
LamerOnLine, я не так давно накосячил с возвращаемым из длл значением, что булева переменная была не тру и не фолс, кажется:) Собственно я писал на форуме..
В примере сначала тоже написал boolean, потом подумал, что для конструкции с 3 исходами булевой не хватит)

Ответить

Номер ответа: 10
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #10 Добавлено: 22.10.10 00:10
я не так давно накосячил с возвращаемым из длл значением

Знаем, помним, гордимся :)

Ответить

Номер ответа: 11
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #11 Добавлено: 22.10.10 09:41
LamerOnLine пишет:
if a = False then
elseif a = True then
else ...
Ааххах, порадовали дико xD xD

Ответить

Номер ответа: 12
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #12 Добавлено: 22.10.10 09:48
Winand пишет:
для конструкции с 3 исходами булевой не хватит

  1. Dim a As Boolean?
(a)

Ответить

Номер ответа: 13
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #13
Добавлено: 22.10.10 18:51
AgentFire, чего? я сказал, что для if elseif else нужно условие, которое может принять хотя бы три значения:)

Ответить

Номер ответа: 14
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #14 Добавлено: 22.10.10 19:31
тип Boolean? может принять три значения

Ответить

Номер ответа: 15
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #15 Добавлено: 22.10.10 19:31
True, False, Nothing

Ответить

Страница: 1 | 2 |

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



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