Форум программистов, компьютерный форум CyberForum.ru

C# .NET

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 67, средняя оценка - 4.66
Dialord
8 / 8 / 1
Регистрация: 14.01.2010
Сообщений: 32
#1

Преобразование string в int - C#

14.01.2010, 15:45. Просмотров 8231. Ответов 8
Метки нет (Все метки)

Здравствуйте, прошу помощи со следующей проблемой: при считывании массива чисел из текстового файла и преобразования его из строки в Int, числа получаются некорректные. Вот код:
C#
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
38
39
private void button1_Click(object sender, EventArgs e)
{
      System.IO.StreamReader data_trance = new System.IO.StreamReader("H:\\test.txt");
      string str = data_trance.ReadLine();
      int kol = str.Length;
      int x = 0;
      int znak = 0;
      int i;
      int j = 0;
      int p = 0;
      int [] mas = new int[4];
      for (i = 0; i < 4; i++)
      { mas[i] = 0;
      }
      for (i = 0; i < kol; i++)
      { if (str[i] == '-')
            { znak = 1;
            }
      else
      { if (str[i] != ' ')
            { j = Convert.ToInt32( str[i]);
            x = x * 10+j;
            }
        else
            { if (znak != 0)
                  { mas[p] = 0 - x;
                     znak = 0;
                     x = 0;
                     p++;
                  }
              else
                  { mas[p] = x;
                     x = 0;
                     p++;
                  }
            }
      }
      }
}
Подскажите, что не так. Этот код нужен для программы к курсовому проекту. так что время поджимает. За ранее благодарен откликнувшимся!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.01.2010, 15:45     Преобразование string в int
Посмотрите здесь:

Преобразование string[] в int[] - C#
Не могу найти по поиску.. Подскажите как преобразовать массив строк в массив целочисленных значений. string в int Добавлено через...

Преобразование String в Int - C#
Помогите пожалуйста разобраться. Задача такая: на входе целое 6-значное число, нужно разбить его на две половины по 3 элемента, а эти...

Преобразование string в int - C#
Спасибо Добавлено через 30 минут private void textBox1_TextChanged(object sender, EventArgs e) { ...

Преобразование String в int[] - C#
Помогите,пожалуйста преобразовать! есть строка key1 = 04589621 её нужно преобразовать в массив &quot;интовский&quot;. что делаю неправильно?...

преобразование string в int - C#
Вот не пойму, как способом можно преобразование string в int... Как вывести int в string разобрался int x = 33; int...

Преобразование string --> byte[] --> int[] - C#
Играюсь с преобразованиями. Есть код: string str = &quot;It's crypted string from Crypto!&quot;; byte b =...

Преобразование типов String в int - C#
Добрый день, перепробовал все способы описанные везде но как введённое через textBox число преобразовать в переменную типа int и/или double...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
SSV
Заблокирован
14.01.2010, 16:17     Преобразование string в int #2
Напиши полностью условие задачи, а то у тебя здесь многое не понятно. Например, зачем заполнять массив нулями, если в нем и так нули после объявления
Цитата Сообщение от Dialord Посмотреть сообщение
int [] mas = new int[4];
for (i = 0; i < 4; i++)
{ mas[i] = 0;
}
Dialord
8 / 8 / 1
Регистрация: 14.01.2010
Сообщений: 32
14.01.2010, 16:48  [ТС]     Преобразование string в int #3
Да, здесь ты прав - это действительно лишнее. Задача как таковая заключается в том, чтобы считать исходные данные из текстового файла. Это лишь кусочек всей программы. В текстовом файле находятся коэффиценты системы уравнений. Уже 6 часов просидел с, казалось бы, элементарным кодом, но никак не могу осуществить задуманное. На C# только перехожу, раньше на С++ писал.

Добавлено через 6 минут
Я тут пришел к решению проблемы, хоть и коряво, но работает. Сделал следущее: заменил оператор
C#
1
j = Convert.ToInt32( str[i]);
на такой
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
                        switch (str[i])
                        {
                            case '0': j = 0; break;
                            case '1': j = 1; break;
                            case '2': j = 2; break;
                            case '3': j = 3; break;
                            case '4': j = 4; break;
                            case '5': j = 5; break;
                            case '6': j = 6; break;
                            case '7': j = 7; break;
                            case '8': j = 8; break;
                            case '9': j = 9; break;
                        }
может и убого, зато работает. Вот правда если туда другой символ пролезет - будет error )) Может default еще прикрутить?
P.S. Если кто может предложить что-то дельное - буду только рад.
mitsky
31 / 31 / 7
Регистрация: 31.12.2009
Сообщений: 82
14.01.2010, 17:08     Преобразование string в int #4
а чем вас int.TryParse() не устраивает?
hardworker
14 / 14 / 1
Регистрация: 12.01.2010
Сообщений: 51
14.01.2010, 17:17     Преобразование string в int #5
C#
1
2
3
4
5
6
7
8
            System.IO.StreamReader data_trance = new System.IO.StreamReader("C://test.txt");
 
            string str = data_trance.ReadLine();
            string[] numbers_in_string = str.Split(' ', '\n'); // Разбиваем текст файла на строки между знаками ' ' И переноса строки '\n'
            int[] numbers = new int[numbers_in_string.Length]; 
 
            for(int j = 0; j < numbers_in_string.Length; j++)
                numbers[j] = Convert.ToInt32(numbers_in_string[j]);
А с помощью TryParse можно проверить правильность информации в хранимом файле
Dialord
8 / 8 / 1
Регистрация: 14.01.2010
Сообщений: 32
14.01.2010, 17:18  [ТС]     Преобразование string в int #6
Цитата Сообщение от mitsky Посмотреть сообщение
а чем вас int.TryParse() не устраивает?
А можно поподробнее с этого места, как именно оператор работает?
Dialord
8 / 8 / 1
Регистрация: 14.01.2010
Сообщений: 32
14.01.2010, 17:23  [ТС]     Преобразование string в int #7
hardworker, спасибо огромное! Отличное предложение, с Вашего позволения я его и использую.
mitsky
31 / 31 / 7
Регистрация: 31.12.2009
Сообщений: 82
14.01.2010, 17:40     Преобразование string в int #8
TryParse преобразует строку в эквивалентное ей число со знаком. метод вернет нужное вам значение если преобразование было успешным либо нул в случае неудачи. конкретнее можно посмотреть в мсдн.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.05.2011, 06:57     Преобразование string в int
Еще ссылки по теме:

Правильное преобразование из string в int - C#
С помощью этого цикла, я все элементы массива string конвертирую в int for (int i = 0; i &lt; digits.Length; i++) d =...

Неверное преобразование string в int - C#
Доброй ночи программеры))) подскажите пожалуйста почему же вылазит ошибка,и как её исправить. using System; using...

Преобразование int-->byte-->char || string - C#
Немного запутался... Прошу распутать. Есть код, который сохраняет значения Int в файл. 73 83 72 208 184 186

Ошибка при изменении с int на string - преобразование невозможно - C#
private void button1_Click(object sender, EventArgs e) { //int year = Convert.ToInt32(comboBox1.Text); ...

Преобразование string в int, которое может принимать значение null - C#
XDocument newsData = XDocument.Load(Server.MapPath(&quot;~/App_Data/News.xml&quot;)); var newsList = from a in...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
aleks_pilipenko
)))
603 / 180 / 9
Регистрация: 31.12.2009
Сообщений: 2,560
Записей в блоге: 3
06.05.2011, 06:57     Преобразование string в int #9
C#
1
2
3
            string str = Encoding.ASCII.GetString(bytesP);
            byte[] Bytes = Encoding.ASCII.GetBytes(str);
            string sss = Encoding.ASCII.GetString(Bytes);
Yandex
Объявления
06.05.2011, 06:57     Преобразование string в int
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru