13:57
ОбновитьСмайлыУправление мини-чатом
МИНИ-ЧАТ
Главная страница!

 



 
          





Рекомендуем:





Последние Файлы GTA 4 Последние Файлы GTA-MP Реклама
Скрипт GTA 4 элементы Watch... 07.09.2014
Ferrari 360 Spider [EPM con... 13.12.2013
Porsche Cayenne Turbo 2012 ... 13.12.2013
Shelby Terlingua Mustang v1... 13.12.2013
Hamann Lamborghini Gallardo... 27.10.2013
[GM] The Big PEN1:LS v2.00 ... 04.12.2017
Dgun (AvnanceRP,SampRP,Dimo... 19.03.2016
SAMP скрипт SX Events (MySQ... 03.03.2016
Карта ASL мэрия для SAMP се... 03.03.2016
AIM для SA-MP 0.3.7 22.02.2016
  • Страница 1 из 1
  • 1
Модератор форума: AXE, Weddew  
Тип данных
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, и этот код реально работает? crazy
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
  • Страница 1 из 1
  • 1
Поиск:





 


 


 
Хостинг от uCoz samp.at.ua