|
Тип данных
|
|
| Rockman | Дата: Пятница, 28.01.2011, 15:09 | Сообщение # 1 |
|
Постоялец
Группа:
Продвинутые
Сообщений: 428
Награды: 4
Город: Нижний Новгород
Репутация: 474
Замечания: 0%
Статус: 
| Здравствуйте, подскажите как определить тип введенных данных игроком. Точнее говоря, как определить что ввел пользователь в поле диалогового окна. Мне необходимо определить, что бы это было целое число.Добавлено (28.01.2011, 15:09) --------------------------------------------- и еще такое уточнение: не используя strval
|
| |
|
|
| Vagrant | Дата: Суббота, 29.01.2011, 04:58 | Сообщение # 2 |
|
Уважаемый человек
Группа:
I'm V.I.P.
Сообщений: 904
Награды: 21
Город: Находка
Репутация: 489
Замечания: 0%
Статус: 
| Rockman, Не используя strval думаю можно только простым перебором. Проверку можно сделать такую: В диалог: for(new i=0;i<strlen(inputtext);i++) if(IsNum(inputtext[i])) // Если в строке inputtext все символы цифры то след. код выполняется. { ... } В конец: stock IsNum(string) // Проверяются есть ли цифры. { if(string == '0' || string == '1' || string == '2' || string == '3' || string == '4' || string == '5' || string == '6' || string == '7' || string == '8' || string == '9') return 1; return 0; }
Человек учась ходить падает, и только падая, он учится ходить! Мои работы: [GM] W.F.S.A. V. 1.0 - 100% [GM] San Fierro Enigmatic (TDM) V. 1.0 - 100% [FS] Clan House V. 1.0 - 100% [FS] Save Car Tun System V. 1.0 - 100% [FS] Vagrant Anti-CapsLock V. 2.1 - 100% [FS] Vagrant Anti-Advertise V. 1.1, V. 2.0 - 100% [APP] SA-MP Interior Viewer V. 1.0 - 100%
Принимаю заказы на помощь в скриптинге!
Сообщение отредактировал Vagrant - Суббота, 29.01.2011, 05:01 |
| |
|
|
| Rockman | Дата: Суббота, 29.01.2011, 10:16 | Сообщение # 3 |
|
Постоялец
Группа:
Продвинутые
Сообщений: 428
Награды: 4
Город: Нижний Новгород
Репутация: 474
Замечания: 0%
Статус: 
| Quote (Vagrant) if(string == '0' || string == '1' || string == '2' || string == '3' || string == '4' || string == '5' || string == '6' || string == '7' || string == '8' || string == '9') Тогда уж цикл разумней всего применить
|
| |
|
|
| Vagrant | Дата: Суббота, 29.01.2011, 14:32 | Сообщение # 4 |
|
Уважаемый человек
Группа:
I'm V.I.P.
Сообщений: 904
Награды: 21
Город: Находка
Репутация: 489
Замечания: 0%
Статус: 
| Rockman, Можно канечно и цикл в IsNum затолкать: stock IsNum(string[]) // Если строка содержит в себе только цифры то возвращаем 1 иначе 0 { new s=0; for(new i=0;i<strlen(string);i++) if(string[i] != '0' || string[i] != '1' || string[i] != '2' || string[i] != '3' || string[i] != '4' || string[i] != '5' || string[i] != '6' || string[i] != '7' || string[i] != '8' || string[i] != '9') s++; if(s > 0) return 0; else return 1; }
Человек учась ходить падает, и только падая, он учится ходить! Мои работы: [GM] W.F.S.A. V. 1.0 - 100% [GM] San Fierro Enigmatic (TDM) V. 1.0 - 100% [FS] Clan House V. 1.0 - 100% [FS] Save Car Tun System V. 1.0 - 100% [FS] Vagrant Anti-CapsLock V. 2.1 - 100% [FS] Vagrant Anti-Advertise V. 1.1, V. 2.0 - 100% [APP] SA-MP Interior Viewer V. 1.0 - 100%
Принимаю заказы на помощь в скриптинге!
|
| |
|
|
| Elbi | Дата: Суббота, 29.01.2011, 15:10 | Сообщение # 5 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 168
Награды: 7
Город: Алчевск
Репутация: 97
Замечания: 0%
Статус: 
| Vagrant, а если, например, нужно было бы проверить на русские символы? Ты бы весь алфавит расписывал? Code IsNumeric(const string[]) { for (new i = 0, j = strlen(string); i < j; i++) { if (string[i] > '9' || string[i] < '0') return 0; } return 1; }
|
| |
|
|
| Vagrant | Дата: Суббота, 29.01.2011, 15:13 | Сообщение # 6 |
|
Уважаемый человек
Группа:
I'm V.I.P.
Сообщений: 904
Награды: 21
Город: Находка
Репутация: 489
Замечания: 0%
Статус: 
| Elbi, А если нужно проверить на русские и английские и большие и маленькие то я делал так: Quote stock IsWord(string) { if(string > 0xBF && string < 0xE0 || string == 0xA8) return 1; else if(string > 0xDF && string < 0xFF || string == 0xB8 || string == 0xFF) return 1; else if(string > 0x60 && string < 0x7B) return 1; else if(string > 0x40 && string < 0x5B) return 1; return 0; }
Человек учась ходить падает, и только падая, он учится ходить! Мои работы: [GM] W.F.S.A. V. 1.0 - 100% [GM] San Fierro Enigmatic (TDM) V. 1.0 - 100% [FS] Clan House V. 1.0 - 100% [FS] Save Car Tun System V. 1.0 - 100% [FS] Vagrant Anti-CapsLock V. 2.1 - 100% [FS] Vagrant Anti-Advertise V. 1.1, V. 2.0 - 100% [APP] SA-MP Interior Viewer V. 1.0 - 100%
Принимаю заказы на помощь в скриптинге!
|
| |
|
|
| Elbi | Дата: Суббота, 29.01.2011, 15:19 | Сообщение # 7 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 168
Награды: 7
Город: Алчевск
Репутация: 97
Замечания: 0%
Статус: 
| Я так делал: Code if(string >= 'A' && string <='Z') return 1; if(string >= 'А' && string <='Я') return 1; С символами более понятно, хотя это дело вкуса
|
| |
|
|
| Scorpi | Дата: Суббота, 29.01.2011, 15:36 | Сообщение # 8 |
|
Группа:
I'm V.I.P.
Сообщений: 1504
Награды: 33
Репутация: 723
Замечания: 0%
Статус: 
| Elbi, и этот код реально работает?
|
| |
|
|
| Elbi | Дата: Суббота, 29.01.2011, 15:45 | Сообщение # 9 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 168
Награды: 7
Город: Алчевск
Репутация: 97
Замечания: 0%
Статус: 
| [off]Scorpi, ну вчера вечером работало [/off]
|
| |
|
|
| Dima-kun | Дата: Суббота, 29.01.2011, 15:54 | Сообщение # 10 |
|
Группа:
Разработчики
Сообщений: 6269
Награды: 72
Репутация: 3512
Замечания: 0%
Статус: 
| Scorpi, как не странно, но должен работать. программа она же тоже не дура))
Мои работы: [INC] Сборник d_includes [LAST],[FS] New Demage Effect,[FS]Авто-Поворотники, [FS]mp3player,[FS] Fun Chat Game,[FS] Car Buy Syst,[FS] Anti-AirBrk,[INC] d_setpos, [GM] Game Move v0.1,[FS+include]Super-Armour [0.3z],[FS + Include] Multi Checkpoints
|
| |
|
|
| ZiGGi | Дата: Суббота, 29.01.2011, 16:15 | Сообщение # 11 |
|
Мастер джэдай
Группа:
Продвинутые
Сообщений: 2652
Награды: 34
Город: St. Petersburg
Репутация: 2102
Замечания: 20%
Статус: 
| Quote (Vagrant) А если нужно проверить на русские и английские и большие и маленькие то я делал так: эмм, зачем всё усложнять? мой вариант функции(думаю быстрее вышеперечисленных) : Code stock IsNum(const string[]) { for(new i=strlen(string)-1;i>=0;--i) { switch(string[i]) { case '0'..'9': {} default: return 0; } } return 1; }
Бложе [indent]Мой блог Уроки по Pawn[/indent]
Open-GTO [indent]Блог разработчиков GitHub: https://github.com/Open-GTO/Open-GTO Сборки мода с сервером тут[/indent]
Сообщение отредактировал ZZiGGi - Суббота, 29.01.2011, 16:22 |
| |
|
|