powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / аналог atoi ? +
6 сообщений из 6, страница 1 из 1
аналог atoi ? +
    #32769751
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть в сишарпе штатное средство для чтения числа из строки типа
atoi - взять сначала строки максимально длинную лексему, удовлетворяющую
определению числа и переконвертить ее в число?
для целоги и плавающего?
а то Parse парсит все вроде бы
...
Рейтинг: 0 / 0
аналог atoi ? +
    #32769757
mikhail_n
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
System.Convert.To... далее везде
...
Рейтинг: 0 / 0
аналог atoi ? +
    #32769775
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нифига. на "12ig" не проработало.
пойду сам писать.

************** Exception Text **************
System.FormatException: Input string was not in a correct format.
at System.Number.ParseInt64(String s, NumberStyles style, NumberFormatInfo info)
at System.Convert.ToInt64(String value)
...
Рейтинг: 0 / 0
аналог atoi ? +
    #32769779
кузя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
попробуй через regexp
Код: plaintext
1.
2.
3.
string z=" yy12 ig";
			
string u=Regex.Match(z, @"\d+").Value;
int    d=(u==string.Empty) ? 0 : Convert.ToInt32(u);
?
...
Рейтинг: 0 / 0
аналог atoi ? +
    #32769780
кузя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
или для числа со знаком
Код: plaintext
string u=Regex.Match(z, @"[\+\-]{0,1}\d+").Value;
...
Рейтинг: 0 / 0
аналог atoi ? +
    #32783223
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо кузя.
про регулярные выражения я забыл
я так сделал

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
  static public 
  int atoi (string str) {
   return (int)atoNmbr( str, true, new CultureInfo( "en-US", false ).NumberFormat);
  }

  static public 
  double atod (string str) {
   return (int)atoNmbr( str, false,  new CultureInfo( "en-US", false ).NumberFormat);
  }

  static public 
  double atoNmbr(string str, bool onlyInt, NumberFormatInfo f)
  {
    double  r;
    for (int i =  str.Length; i> 0 ; i--){
      if ( double.TryParse ( str.Substring(0, i), 
              onlyInt?(
              NumberStyles.AllowLeadingSign  |
              NumberStyles.AllowLeadingWhite |
              NumberStyles.AllowTrailingWhite
              )
              :
             (NumberStyles.AllowCurrencySymbol |
              NumberStyles.AllowExponent  |
              NumberStyles.AllowThousands |
              NumberStyles.AllowDecimalPoint |
              NumberStyles.AllowLeadingSign  |
              NumberStyles.AllowLeadingWhite |
              NumberStyles.AllowTrailingWhite
             ), 
              f, out r)){
        return  r;
      }
    }
    return 0.0;
  }

...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / аналог atoi ? +
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]