Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.68/41: Рейтинг темы: голосов - 41, средняя оценка - 4.68
 Аватар для &Alex&
20 / 20 / 3
Регистрация: 21.03.2010
Сообщений: 221

Чтение из файла каждой цифры посимвольно

31.03.2011, 13:45. Показов 7855. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Если я записал в файл число 34523, то как мне его считать не по символьно каждую цифру(3 потом 4 потом 5...) а полностью целое число(в даном случае 34523) и дальше с этим числом выполнять действия???
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
31.03.2011, 13:45
Ответы с готовыми решениями:

Чтение файла посимвольно
Не получается прочитать файл посимвольно using (StreamReader file = new StreamReader(path)) { while...

Чтение из файла посимвольно
Доброго времени суток, знатоки! Есть файл txt, в котором текст представлен в виде одной строки(около 65000 символов, в последующем будет...

Чтение посимвольно из файла с пробелами
Ребята, подкажте, в чем проблема в чтении файла? спасибо #include "fstream" #include "string" using namespace std; int main ()...

24
 Аватар для SandWraith
189 / 189 / 38
Регистрация: 11.04.2009
Сообщений: 497
31.03.2011, 13:51
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

C#
1
2
3
4
5
6
var filename = "text.txt";
var num = 34523;
using (var writer = new StreamWriter(filename, false)) { writer.Write(num); }
 
int num_read;
using (var reader= new StreamReader(filename)) { int.TryParse(reader.ReadLine(), out  num_read); }
0
гроза ленивых студентов
 Аватар для znake
456 / 411 / 51
Регистрация: 27.03.2011
Сообщений: 823
31.03.2011, 13:52
если у тебя в файле лежит только одно это число и ничего более - считай в строку, дальше конвертай во что душе угодно.
если дело обстоит как-то иначе - опиши как именно оно обстоит
0
 Аватар для &Alex&
20 / 20 / 3
Регистрация: 21.03.2010
Сообщений: 221
31.03.2011, 13:57  [ТС]
Цитата Сообщение от znake Посмотреть сообщение
если у тебя в файле лежит только одно это число и ничего более - считай в строку, дальше конвертай во что душе угодно.
если дело обстоит как-то иначе - опиши как именно оно обстоит
Реализую RSA. В текстовом файле находятся числа(много). Эти числа нужно считать целиком, потом возвести в степень. Если делаю так
C++
1
2
3
            for (int i = 0; i < 10; i++)
            {                Console.Write("{0}   ",str1[i]);
}
То выводится только первая цифра из всего числа. Нужно как-то считать всё число...
0
гроза ленивых студентов
 Аватар для znake
456 / 411 / 51
Регистрация: 27.03.2011
Сообщений: 823
31.03.2011, 14:07
если в текстовом файле лежит много чисел и нет текста, то чем-то между собой эти числа разделяются, правильно? либо одно число на строку, либо пробелами разделены, либо еще чем.
в таком случае - опять же все просто:
считываешь весь файл целиком в одну строку. затем с помощью Split эту строку разбиваешь на массив, причем сразу же конвертируешь.
пример кода нужен?

или у тебя в файле еще и слова есть, помимо циферь?
1
 Аватар для &Alex&
20 / 20 / 3
Регистрация: 21.03.2010
Сообщений: 221
31.03.2011, 14:13  [ТС]
Цитата Сообщение от znake Посмотреть сообщение
если в текстовом файле лежит много чисел и нет текста, то чем-то между собой эти числа разделяются, правильно? либо одно число на строку, либо пробелами разделены, либо еще чем.
в таком случае - опять же все просто:
считываешь весь файл целиком в одну строку. затем с помощью Split эту строку разбиваешь на массив, причем сразу же конвертируешь.
пример кода нужен?

или у тебя в файле еще и слова есть, помимо циферь?
В файле ток цифры, розделеные пробелами. Мож для этого случая примерчик написать?
0
146 / 130 / 27
Регистрация: 20.12.2010
Сообщений: 242
31.03.2011, 14:20
C#
1
2
3
4
5
6
7
String str = "123 456 789";
String[] mas = str.Split(new String[] { " " }, StringSplitOptions.RemoveEmptyEntries);
foreach (String s in mas)
{
   Int32 n = Int32.Parse(s);
// чтото делаем с числом
}
1
гроза ленивых студентов
 Аватар для znake
456 / 411 / 51
Регистрация: 27.03.2011
Сообщений: 823
31.03.2011, 14:24
C#
1
2
3
            List<string> str = new List<string>(File.ReadAllText("test.txt").Split(' '));
            int[] mass = new int[str.Count];
            for (int i = 0; i < str.Count; i++) mass[i] = Convert.ToInt32(str.ElementAt(i));
в итоге имеешь массив интов.
но этот код сработает, только если у тебя файлы все числа в 1 строке записаны. если они еще и по строкам разбиты, это будет выглядеть немного иначе...
1
146 / 130 / 27
Регистрация: 20.12.2010
Сообщений: 242
31.03.2011, 14:31
C#
1
List<string> str = new List<string>(File.ReadAllText("test.txt").Split(' '));
замени на
C#
1
List<string> str = new List<string>(File.ReadAllText("test.txt").Split(new String[] { " ", "\n", "\r" }, StringSplitOptions.RemoveEmptyEntries));
и у тебя будут парсится числа и по пробелам и по строкам
И опцию нужно поставить, что бы не было случайных пробелов в массиве.
C#
1
Convert.ToInt32(str.ElementAt(i));
лучше так
C#
1
Convert.ToInt32(str[i]);
просто наглядней. Не все помнят функции доступа к коллекции по индексу, зато операцию индексации знают все.
2
 Аватар для &Alex&
20 / 20 / 3
Регистрация: 21.03.2010
Сообщений: 221
31.03.2011, 15:30  [ТС]
Всем спасибо! Смысл понял-сейчас занимаюсь реализацией...

Добавлено через 56 минут
Что-то не получается...Вот считал я весь файл в str1(содержимое- 3452 45 2317...)
C#
1
2
            StreamReader sc = new StreamReader(File.Open(@"c:\zak.txt", FileMode.Open));
            string str1 = sc.ReadToEnd();
при обьявлении переменной st (string st; ) и попитки записать в неё посимвольно(пока не пробел)-выдаёт ошибку...Как быть???
0
гроза ленивых студентов
 Аватар для znake
456 / 411 / 51
Регистрация: 27.03.2011
Сообщений: 823
31.03.2011, 15:38
Цитата Сообщение от &Alex& Посмотреть сообщение
при обьявлении переменной st (string st; ) и попитки записать в неё посимвольно(пока не пробел)-выдаёт ошибку
код того, как ты это пытаешься сделать + текст ошибки
0
 Аватар для &Alex&
20 / 20 / 3
Регистрация: 21.03.2010
Сообщений: 221
31.03.2011, 15:44  [ТС]
Как-то так:
C#
1
2
3
4
5
6
7
8
9
            String st;
            for (int i = 0; i < 4; i++)
            {
                if (str1[i] != ' ')
                {
                    st[i] = (int)str1[i]; //в str1 все цифры
                }
            }
            Console.Write(st);
0
146 / 130 / 27
Регистрация: 20.12.2010
Сообщений: 242
31.03.2011, 15:48
тебе же дали код как конвертировать стринг в инт
то что ты написал, вообще не имеет смысла.
0
гроза ленивых студентов
 Аватар для znake
456 / 411 / 51
Регистрация: 27.03.2011
Сообщений: 823
31.03.2011, 15:49
== здесь я глупость написал сначала ==

d3nver, мож он новый какой способ найдет
0
146 / 130 / 27
Регистрация: 20.12.2010
Сообщений: 242
31.03.2011, 15:52
и зачем тебе писать посимвольно?
ты получил куски строк уже с числами, только в текстовом виде.
Через конвертер или через парсер их можно преобразовывать в числовые значения и использовать дальше.

Добавлено через 3 минуты
C#
1
2
3
4
5
6
7
String str = "123 456 789";
String[] mas = str.Split(new String[] { " " }, StringSplitOptions.RemoveEmptyEntries);
foreach (String s in mas)
{
   Int32 n = Int32.Parse(s);
// чтото делаем с числом
}
1) в строке str 3(три) числа разделенных пробелами
2) разбиваем эту большую строку на 3 подстроки, используя как разделитель символ пробела. В результате получается массив из 3х строк: "123", "456", "789"
В цикле (3) для каждой подстроки делаем преобразование (5): конвертируем строковое представление числа в само число. В результате при первом прохождении цикла n станет равно 123.
1
мастер топоров
 Аватар для Koran
917 / 742 / 101
Регистрация: 16.08.2009
Сообщений: 1,476
31.03.2011, 17:25
Цитата Сообщение от d3nver Посмотреть сообщение
List<string> str = new List<string>(File.ReadAllText("test.txt" ).Split(new String[] { " ", "\n", "\r" }, StringSplitOptions.RemoveEmptyEntries));
вот так ты получишь типизированный стринговый список всех твоих элементов, которые разделены символами
C#
1
{ " ", "\n", "\r" }
далее ты парсишь в любой нужный тебе тип
C#
1
2
3
4
int[] iArray = new int[str.Count]
for(int i = 0; i < iArray.Lenght; i++){
iArray[i]=int.Parse(str[i]);
}
вот так ты получаешь интовый массив.
вопрос к znake: зачем использовать типизированный список вместо стрингового массива?
1
 Аватар для SandWraith
189 / 189 / 38
Регистрация: 11.04.2009
Сообщений: 497
31.03.2011, 17:29
Цитата Сообщение от Koran Посмотреть сообщение
List<string> str = new List<string>(File.ReadAllText("test.txt" ).Split(new String[] { " ", "\n", "\r" }, StringSplitOptions.RemoveEmptyEntries));
Замените на:
C#
1
var str = File.ReadAllText("test.txt").Split(new char[] { ' ', '\n', '\r' }, StringSplitOptions.RemoveEmptyEntries);
1
мастер топоров
 Аватар для Koran
917 / 742 / 101
Регистрация: 16.08.2009
Сообщений: 1,476
31.03.2011, 17:34
SandWraith, капитан бы вами гордился
вот у меня возник аналогичный вопрос "зачем использовать типизированный список вместо обычного массива?"
0
гроза ленивых студентов
 Аватар для znake
456 / 411 / 51
Регистрация: 27.03.2011
Сообщений: 823
31.03.2011, 17:35
Цитата Сообщение от Koran Посмотреть сообщение
вопрос к znake: зачем использовать типизированный список вместо стрингового массива?
все просто - я c# только учу (и месяца нет пока), поэтому не знаю кучи особенностей синтаксиса и в основах теории много пробелов.
как одной строчкой закинуть все в список - я знал. А как в массив - нет поэтому и написал список.

p.s. мне стыдно
0
мастер топоров
 Аватар для Koran
917 / 742 / 101
Регистрация: 16.08.2009
Сообщений: 1,476
31.03.2011, 17:41
Цитата Сообщение от SandWraith Посмотреть сообщение
C#
1
File.ReadAllText("test.txt").Split(new String[] { " ", "\n", "\r" }, StringSplitOptions.RemoveEmptyEntries)
возвращает как раз стринговый массив. смотрите что вам подсказывает IntelliSense

Добавлено через 1 минуту
ой-йой-йой...
неправ.. каюсь..
я обычно пользуюсь System.IO.File.ReadAllLines(); - вот она-то возвращает стринговый массив

Добавлено через 31 секунду
а РидОллТекст возвращает большую стринговину
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
31.03.2011, 17:41
Помогаю со студенческими работами здесь

Чтение текстового файла посимвольно в переменную
Задача: необходимо посимвольно читать бинарный или текстовый (два варианта) файл в переменную. То есть переменная должна периодически...

Ошибки: чтение и запись файла посимвольно с добавлением и удалением char в массиве
Помогите найти ошибки! Читаю из файла посимвольно, закидываю в ArrayList. С помощью for добавляю и удаляю char: если выводить в консоль, то...

чтение строки посимвольно
Кто нибудь подскажет как проситать строку посимвольно?? ну я писал: for i:=1 to length(s) do begin writeln(i,length(s)); ...

Чтение каждой 9-й строки файла txt
Доброго времени суток! Как организовать чтение каждой 9-й строки текстового файла? Заранее спасибо!

Чтение текста посимвольно и разбивка на слова
Нужно считать строку, которая может состоять из любых символов.Потом разбить на слова. Причем разбивка идет по любому символу кроме...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия SDL 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual. . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru