Visual Basic, .NET, ASP, VBScript
 

   
   
     

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

Страница: 1 |

 

  Вопрос: Нужно упростить Добавлено: 08.06.04 12:53  

Автор вопроса:  Atlant

Есть условие:

If KeyAscii <> Asc(0) And KeyAscii <> Asc(1) And KeyAscii <> Asc(2) And KeyAscii <> Asc(3) And KeyAscii <> Asc(4) And KeyAscii <> Asc(5) And KeyAscii <> Asc(6) And KeyAscii <> Asc(7) And KeyAscii <> Asc(8) And KeyAscii <> Asc(9) And KeyAscii <> Asc("-") And KeyAscii <> Asc(UCase(Chr(8))) Then

Хотелось бы упростить...

Ответить

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

Номер ответа: 1
Автор ответа:
 Fallout



Вопросов: 10
Ответов: 387
 Web-сайт: mudator.by.ru
 Профиль | | #1
Добавлено: 08.06.04 13:18
IF ((KeyAscii>57) AND (KeyAscii <> Asc(UCase(Chr(8)))) then

+) очень упрощено можно будет ввести всё кроме циф и нескольких знаков что ниже их по таблице символов а всё остальное можно...

Ответить

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



Вопросов: 1
Ответов: 1
 Профиль | | #2 Добавлено: 08.06.04 13:48
Спасибо.

Ответить

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


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #3
Добавлено: 08.06.04 17:31
Во-первых, asc принимает аргументом строку, но никак не число, во-вторых, ucase(chr(8)) и есть chr(8), потому как верхнего регистра у tab нет и никогда не было. Поэтому asc(ucase(chr(8)))=8

Ответить

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



Вопросов: 10
Ответов: 387
 Web-сайт: mudator.by.ru
 Профиль | | #4
Добавлено: 08.06.04 19:15
+) Ну я понял что он хотел =)
asc(ucase(chr(8))) угу .. да получается то же самое что и прсото 8... но малоли в этом есть глубокий смысл которого никому не понять ? +)

Ответить

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



Вопросов: 10
Ответов: 387
 Web-сайт: mudator.by.ru
 Профиль | | #5
Добавлено: 08.06.04 19:16

IF (KeyAscii>57) THEN

+))) дальеш больше...

Ответить

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



ICQ: 5297101 

Вопросов: 16
Ответов: 93
 Web-сайт: xtec.ru
 Профиль | | #6
Добавлено: 08.06.04 21:17
а можно попроюовать так:

for x = 0 to 9

IF ((KeyAscii<>x) AND (KeyAscii <> Asc(UCase(Chr(8)))) then

next

это я просто так...:)
но работать должно!

Ответить

Номер ответа: 7
Автор ответа:
 @CyRax PTR



ICQ: 204447456 

Вопросов: 28
Ответов: 664
 Web-сайт: basicproduction.nm.ru/
 Профиль | | #7
Добавлено: 08.06.04 22:13
 А если так:

 Select Case KeyAscii
 Case ASC("0";) to ASC("9";), ASC("-";), 8
msgbox"Key is Numeric or '-' or <TAB>"
 Case Else
Msgbox"Another key",,Str$(KeyAscii)
 End Select

Ответить

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



ICQ: 5297101 

Вопросов: 16
Ответов: 93
 Web-сайт: xtec.ru
 Профиль | | #8
Добавлено: 08.06.04 22:39
@CyRax PTR

ну ты как всегда оригенален....:)

Ответить

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



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #9
Добавлено: 08.06.04 22:40
Раз тема расползлась сказану еще один неплохой способ :)))

Private Sub Form_KeyPress(KeyAscii As Integer)
    If VBA.IsNumeric(Chr$(KeyAscii)) Or KeyAscii = Asc("-";) Or KeyAscii = vbKeyTab Then
        Call MsgBox("a";)
    Else
        Call MsgBox("b";)
    End If
End Sub

Ответить

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



ICQ: 5297101 

Вопросов: 16
Ответов: 93
 Web-сайт: xtec.ru
 Профиль | | #10
Добавлено: 08.06.04 22:59
ну все начинаеться!!!!:)

Ответить

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



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #11
Добавлено: 08.06.04 23:26
TERMIT, не печатай ты со скоротью 195 знаков/сек... лучше печатай хоть 160, но без ошибок :)))

начинаетЬся
оригЕнален

И не флэйм без причины... а то мне это боком выходит... трафик нонче дорогой :)))

Ответить

Номер ответа: 12
Автор ответа:
 @CyRax PTR



ICQ: 204447456 

Вопросов: 28
Ответов: 664
 Web-сайт: basicproduction.nm.ru/
 Профиль | | #12
Добавлено: 09.06.04 03:09
TERMIT,
 Я в 15 лет програмил примерно как и ты. Хотя термин "оригинален" скорее подходит тебе. Зачем ты ВСЕ задачи решаешь через цикл? Тем более работу со строками и файлами.
 
 Я тебя немножко просвещу. VB6 - это ОЧЕНЬ медленный язык программирования. Скорость выполняемой программы вся ушла в удобство.
 Закон сохранения энергии знаешь? Ну там "...сколько от одного отъединится, столько и присовокупится к другому.". Он тут чётко срабатывает.

 А ты ассемблерные алгоритмы пытаешся применить в этой черепахе. Лучше чаще читай хелпы. Скорее всёго найдёшь тот же код что ты пишешь, но уже скомпилированный на АСМ в виде VB-шной команды или оператора.

Ответить

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


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #13
Добавлено: 10.06.04 20:49
Если к мелкомягким программерам присоединиться много денег и приказ от Билли сделать продукт максимально медленным, чтобы следующая версия показалась всем совершенной, то от производительности программ отсоединиться примерно 99,5%.

Ответить

Страница: 1 |

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



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