Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 22, средняя оценка - 4.64
4dimuser
0 / 0 / 4
Регистрация: 04.04.2011
Сообщений: 160
#1

Как перевести текст в цифры? - C#

18.11.2011, 19:45. Просмотров 2953. Ответов 14
Метки нет (Все метки)

Есть текстовый файл с двумя столбиками цифр, разделенными табуляцией.
Как из первого столбика вычесть второй и результат записать в третий столбик?
http://www.cyberforum.ru/csharp-net/thread1198700.html
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.11.2011, 19:45
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как перевести текст в цифры? (C#):

Как на С# перевести текст или экспортировать в расширение .doc (ms word) ?
Как на "Си шарпе" перевести текст или экспортировать в расширение .doc....

Перевести слова в цифры
Нужно перевести слова в цифры на C#!!! Как это сделать?

Цифры перевести в плавающий код
как цифры перевести на плавучем коды C#?

Перевести двоичный код в текст
Добрый день! Мне нужно перевести двоичный код из txt файла в текст на c# Нашел...

Перевести текст в двумерный массив
Есть текст в файле, в каждой строке по 5 чисел 4 863 1101060 00,00 ...

14
nluxa
1 / 1 / 1
Регистрация: 18.11.2011
Сообщений: 8
18.11.2011, 19:54 #2
System.Convert.ToDecimal();
в TestConnect есть
0
kolorotur
Эксперт .NET
9920 / 8305 / 2038
Регистрация: 17.09.2011
Сообщений: 14,291
18.11.2011, 22:19 #3
Лучший ответ Сообщение было отмечено как решение

Решение

Поиграемся немножко с линком:
C#
1
2
3
4
5
6
7
8
var query = from line in File.ReadAllLines("input.txt")
            let nums = line.Split('\t')
            let num1 = Convert.ToDouble(nums[0])
            let num2 = Convert.ToDouble(nums[1])
            let num3 = num1 + num2
            select string.Format("{0}\t{1}", line, num3);
 
File.WriteAllText("output.txt", string.Join(Environment.NewLine, query));
4
4dimuser
0 / 0 / 4
Регистрация: 04.04.2011
Сообщений: 160
21.11.2011, 19:01  [ТС] #4
Цитата Сообщение от kolorotur Посмотреть сообщение
string.Join(Environment.NewLine, query
Подчеркивает красным.
Задание немножко изменилось: файл состоит из четырех столбиков, разделенных табуляцией. Первый трогать не нужно, во втором может быть записано либо "L", либо "S", а с остальными, последними двумя, нужно сделать как я и написал раньше только с изменением: Если "L", то из третьего вычесть четвертый, если "S", то из четвертого вычесть третий, результат записать в пятый.
0
dotFive
34 / 34 / 3
Регистрация: 12.10.2011
Сообщений: 175
21.11.2011, 19:22 #5
ну вот и делай по аналогии)
1
4dimuser
0 / 0 / 4
Регистрация: 04.04.2011
Сообщений: 160
21.11.2011, 19:31  [ТС] #6
Я же говорю этот код подчеркивается красным. Какие тут аналогии?
0
dotFive
34 / 34 / 3
Регистрация: 12.10.2011
Сообщений: 175
21.11.2011, 20:41 #7
напиши, что за ошибку говорят...чтоле

а по аналогии я имею ввиду об энтом:
Цитата Сообщение от 4dimuser Посмотреть сообщение
Задание немножко изменилось
1
4dimuser
0 / 0 / 4
Регистрация: 04.04.2011
Сообщений: 160
21.11.2011, 20:44  [ТС] #8
Линк есть.
Подчеркивается красным:
string.Join(Environment.NewLine, query)

Ошибка 2 Аргумент "2": преобразование типа из "System.Collections.Generic.IEnumerable<string>" в "string[]" невозможно

Ошибка 1 Наиболее подходящий перегруженный метод для "string.Join(string, string[])" имеет несколько недопустимых аргументов
0
kolorotur
Эксперт .NET
9920 / 8305 / 2038
Регистрация: 17.09.2011
Сообщений: 14,291
21.11.2011, 22:43 #9
Цитата Сообщение от 4dimuser Посмотреть сообщение
Подчеркивается красным
Подразумевается, что вы пишете под .NET4

Если идете позади планеты всей, то надо гнать итератор в массив:
C#
1
string.Join(Environment.NewLine, query.ToArray()));
0
kazachok
54 / 29 / 7
Регистрация: 28.02.2011
Сообщений: 105
22.11.2011, 11:41 #10
C#
1
2
3
4
5
6
7
8
9
10
11
12
StreamReader f = new StreamReader("E:\\aaa.txt");
            string s = f.ReadLine();
 
            string[] buf;
            buf = s.Split(' ');
            int x = Convert.ToInt32(buf[0])  Convert.ToInt32(buf[1]);
            MessageBox.Show(x.ToString());
            f.Close();
 
            StreamWriter fw = new StreamWriter("E:\\aaa.txt");
            fw.WriteLine(buf[0] + " " + buf[1] + " " + x);
            fw.Close();
вопрос - насколько корретен вот такой код для задачи? И такой вопрос - если к примеру не переписывать строчку -есть ли у классов StreamWriter и StreamReader возможность двигать каретку? спасибо.
0
kolorotur
Эксперт .NET
9920 / 8305 / 2038
Регистрация: 17.09.2011
Сообщений: 14,291
22.11.2011, 12:00 #11
Цитата Сообщение от kazachok Посмотреть сообщение
насколько корретен вот такой код для задачи?
Вполне корректен, если надо изменить только первую строчку файла.

Цитата Сообщение от kazachok Посмотреть сообщение
C#
1
int x = Convert.ToInt32(buf[0]) Convert.ToInt32(buf[1])
По-моему, вы тут плюс пропустили.

Цитата Сообщение от kazachok Посмотреть сообщение
есть ли у классов StreamWriter и StreamReader возможность двигать каретку?
Есть, но лучше переписывать строчку.
0
Heisenberg
44 / 45 / 15
Регистрация: 11.08.2010
Сообщений: 226
22.11.2011, 18:24 #12
1.Ну у вас цифры не в 1 строчке, так что легче 1 раз выгрузить весь файл в память и циклом парсить данные, чем каждый раз считывать

2.
C#
1
2
string[] buf;
            buf = s.Split(' ');
в 1 строчку обьедените

3.
C#
1
int x = Convert.ToInt32(buf[0])  Convert.ToInt32(buf[1]);
Зачем вы конвертируйте строку в число если не используйте его

4.
C#
1
StreamReader f = new StreamReader("E:\\aaa.txt");
C#
1
StreamWriter fw = new StreamWriter("E:\\aaa.txt");
обхватите в using и тогда не надо будет самому закрывать поток

4. Тут
C#
1
fw.WriteLine(buf[0] + " " + buf[1] + " " + x);
лучше использовать форматирование
0
kazachok
54 / 29 / 7
Регистрация: 28.02.2011
Сообщений: 105
22.11.2011, 19:15 #13
спасибо за ответ.
по пункту 3 - там знак минус пропущен - моя ошибка. на счет using - почитал, буду пробовать!
пункт 4 - форматирование какого плана?
0
dotFive
34 / 34 / 3
Регистрация: 12.10.2011
Сообщений: 175
22.11.2011, 20:55 #14
C#
1
StreamWriter fw = new StreamWriter(@"E:\\aaa.txt");
не?)

и вообще, что ты имеешь ввиду под вопросом "корректен ли для задачи"?
0
kazachok
54 / 29 / 7
Регистрация: 28.02.2011
Сообщений: 105
22.11.2011, 21:24 #15
скорее я хотел спросить - насколько приведенный код соответствует наиболее практичному решению такой задачи)
0
22.11.2011, 21:24
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.11.2011, 21:24
Привет! Вот еще темы с решениями:

Задан текст. Определить, содержит ли он цифры
3 задан текст.определить,содержит ли он цифры?

Регулярные выражения. Определить содержит ли текст цифры
Используя классы из пространства имен RegularExpression выполнить задачу: -...

Дан непустой текст в который входят только цифры и буквы
В заданный непустой текст входят только цифры и буквы. Определить,...

Есть ли какой-то способ узнать, что с консоли введен именно текст, а не цифры
Добрий день! Есть ли какой-то способ узнать что с консоли введен именно текст,...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

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