0 / 0 / 0
Регистрация: 03.04.2016
Сообщений: 10
1

Посимвольное считывание файла

03.04.2016, 14:43. Показов 16766. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть файл в котором находится несколько строк последовательностей нулей и единиц.
10101010101
01010101011
10101010101
10101011100 итд.
Нужно считать каждый символ, то есть узнать, 0 это или 1.
Перекопал MSDN, перекопал форум - примеры либо не те, либо слишком сложны и не понятны.
Нет даже набросков кода, поскольку окончательно запутался в синтаксисах.
Буду очень признателен за помощь.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.04.2016, 14:43
Ответы с готовыми решениями:

Посимвольное считывание текста из файла
доброго времени суток. прейду сразу к вопросу: мысль, есть файл(текстовый), откуда читаем...

Посимвольное считывание строки
Всем привет, вопрос такого рода: допустим есть строка String phrase = "я люблю людей"; каким...

Организовать посимвольное чтение из текстового файла
Здравствуйте. Возник вопрос: можно ли организовать посимвольное чтение из текстового файла? В...

Посимвольное чтение файла
Доброе время суток! Такая проблема встала передо мной: Есть файл вида: 0012345 01123412345678...

8
525 / 487 / 98
Регистрация: 25.12.2011
Сообщений: 1,176
03.04.2016, 15:06 2
Не знаю, что нужно, простота, красота или что-то еще, но написал простой пример:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
            /* Читаем строки из файла в массив */
            string[] lines = System.IO.File.ReadAllLines(@"E:\1.txt");
            /* Создаем массив - массивов размером равным кол-ву строк */
            char[][] element = new char[lines.Length][];
            /* index - просто счетчик */
            int index = 0;
            /* Перебираем все строки, разбивая их на массивы и заполняем наш массив */
            foreach (string item in lines)
            {
                element[index] = item.ToArray();
                index++;
            }
 
            /* Простой вывод первого массива элементов в строковом формате */
            foreach (char item in element[1])
                if (item == '0')
                {
                    Console.Write("Ноль ");
                } else
                {
                    Console.Write("Один ");
                }
            Console.ReadLine();
1
1494 / 1209 / 821
Регистрация: 29.02.2016
Сообщений: 3,601
03.04.2016, 15:08 3
C#
1
2
3
4
using (StreamReader sr = File.OpenText(filename))
            {
                char c = (char)sr.Read();
            }
2
0 / 0 / 0
Регистрация: 03.04.2016
Сообщений: 10
04.04.2016, 00:17  [ТС] 4
Спасибо, Jason, это то что нужно.
Я пытался это реализовать через тот же StreamReader но запутался.
afront, а не могли бы вы подсказать, как обращаться к символу, который методом Read считали? И не нужен ли цикл прохода по всей строке/всем строкам?
0
525 / 487 / 98
Регистрация: 25.12.2011
Сообщений: 1,176
04.04.2016, 02:01 5
Лучший ответ Сообщение было отмечено Kornext как решение

Решение

Цитата Сообщение от Kornext Посмотреть сообщение
Я пытался это реализовать через тот же StreamReader но запутался.
Да вроде ничего сложного, (я привел пример исходя из удобства доступа):
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
        static void Main(string[] args)
        {
            using (StreamReader sr = File.OpenText(@"E:\1.txt"))
            {
                while (sr.Peek() != -1)
                {
                    char c = (char)sr.Read();
                    if (c == '0')
                        Console.Write("ZERO ");
                    else if (c == '1')
                        Console.Write("ONE ");
                    else if (c == '\n')
                        Console.WriteLine();
 
                }
            }
            Console.ReadLine();
        }
2
0 / 0 / 0
Регистрация: 03.04.2016
Сообщений: 10
05.04.2016, 18:06  [ТС] 6
Спасибо за помощь!
0
0 / 0 / 0
Регистрация: 28.10.2017
Сообщений: 35
27.02.2019, 06:51 7
А если мы читаем допустим не числа, а текст посимвольно?
У меня такая ситуация, и он выдает знаки вопроса на каждую букву. Как с этим быть?
0
Администратор
Эксперт .NET
16325 / 12814 / 5060
Регистрация: 17.03.2014
Сообщений: 26,086
Записей в блоге: 1
27.02.2019, 14:37 8
Zerita-Chan, это похоже на проблему с кодировкой. Попробуй указать её так
C#
1
using (StreamReader sr = new StreamReader(@"E:\1.txt", Encoding.GetEncoding("windows-1251")))
Цитата Сообщение от Zerita-Chan Посмотреть сообщение
А если мы читаем допустим не числа, а текст посимвольно?
Для этих символов разве существуют разные типы? Или char он единый для всех?
1
0 / 0 / 0
Регистрация: 03.04.2016
Сообщений: 10
01.03.2019, 21:07  [ТС] 9
Цитата Сообщение от OwenGlendower Посмотреть сообщение
Для этих символов разве существуют разные типы? Или char он единый для всех?
Могу ошибаться, но кажется char просто представляет символ в целочисленном виде в кодировке Unicode.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.03.2019, 21:07
Помогаю со студенческими работами здесь

Посимвольное считывание из файла
Нужно считать данные из файла посимвольно, при этом не все подряд, а, например из 1й строчки с 5...

Посимвольное считывание файла
Как считать файл посимвольно? Файл состоит из 1-й строки и включает в себя цифры разделённые...

Посимвольное считывание из файла
Сообствено, задание: посимвольно считать данные из файла f и записать их также посимвольно в файл...

Посимвольное считывание файла
Почему вместе с символами, записанными в файле, считываются какие-то еще? int i=0,n,sum; char*...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru