Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.97/30: Рейтинг темы: голосов - 30, средняя оценка - 4.97
0 / 0 / 1
Регистрация: 12.06.2009
Сообщений: 60

Чтение байтов из файла

27.05.2013, 20:25. Показов 5683. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравсвуйте! Есть файл в котором записвны числа 1234567890. Есть такой код
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
 int amount, sum = 0;
            byte[] Array = new byte[10];
            FileStream f1 = new FileStream("Textfile.txt", FileMode.OpenOrCreate);
            amount = f1.Read(Array, 0, 5);
            f1.Close();
            for (int i = 0; i < Array.Length; i++)
            {
                Console.Write(Array[i] + "\t");
                sum += Array[i];
            }
            Console.WriteLine();
            Console.WriteLine("Sum : {0}\nAmount : {1}", sum, amount);
            Console.ReadLine();
Получаю результат 49 50 51 52 53 0 0 0 0 0
не понятно от куда. Может кто небудь объяснит?
Заранее благодарью за помощь
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.05.2013, 20:25
Ответы с готовыми решениями:

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

Чтение байтов с конца файла
У меня есть текстовый файл размером к примеру 35 кб мне надо считать 1 кб с конца файла FileSteam tempsteam = new...

Чтение массива байтов из Bitmap
Добрый день! Вытаскиваю ширину развертки из BitmapData свойством Stride. В конце каждой пиксельной строки присутствует один...

4
55 / 55 / 8
Регистрация: 06.02.2013
Сообщений: 317
27.05.2013, 20:30
да, так и должно быть, ведь вы считываете коды символов 49 - '1' 50 -'2' и т.д.
попробуйте объявить массив
C#
1
char[] Array = new char[10];
Добавлено через 1 минуту
но тогда вы всё равно не сможете сосчитать сумму. Вам нужно будет конвертировать char в числовой тип с помощью System.Convert
1
0 / 0 / 1
Регистрация: 12.06.2009
Сообщений: 60
27.05.2013, 20:53  [ТС]
Цитата Сообщение от LiquidSnake Посмотреть сообщение
да, так и должно быть, ведь вы считываете коды символов 49 - '1' 50 -'2' и т.д.
попробуйте объявить массив
C#
1
char[] Array = new char[10];
Добавлено через 1 минуту
но тогда вы всё равно не сможете сосчитать сумму. Вам нужно будет конвертировать char в числовой тип с помощью System.Convert
не получилось, потому что f1.Read принимает только байтовый массив, может есть другой выход?еще лдин вопрс: я дабавила код после чего в массиве значения всех чисел стало 0.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 int amount, number,sum = 0;
            
            byte[] Array = new byte[10];
            FileStream f1 = new FileStream("Textfile.txt", FileMode.OpenOrCreate);
           do
            {
                number = f1.ReadByte();
                Console.Write((char)number+"");
 
            }
            while (number != -1);
            Console.WriteLine();
            amount = f1.Read(Array, 0, 8);
            f1.Close();
            for (int i = 0; i < Array.Length; i++)
            {
                Console.Write(Array[i] + "\t");
                sum += Array[i];
            }
            Console.WriteLine();
            Console.WriteLine("Sum : {0}\nAmount : {1}", sum, amount);
            Console.ReadLine();
0
Эксперт С++
 Аватар для _lunar_
3701 / 2836 / 451
Регистрация: 03.05.2011
Сообщений: 5,193
Записей в блоге: 21
28.05.2013, 00:56
т.е. вам нужно суммировать числа, которые находятся в файле?
и, обязательно ли делать через byte?
можно например вот так
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
using System;
using System.IO;
 
class Program
{
    static void Main()
    {
        var str = new StreamReader("Textfile.txt");
        string s = str.ReadLine();
        int[] a = new int[s.Length];
        int b = 0;
        for (int i = 0; i < s.Length; i++)
        {
            a[i] = Convert.ToInt32(s.Substring(i, 1));
            b += a[i];
        }
        Console.Write(b);
        Console.ReadKey();
    }
}
2
0 / 0 / 1
Регистрация: 12.06.2009
Сообщений: 60
28.05.2013, 13:33  [ТС]
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
string file="text.txt";
            FileStream f1=new FileStream(file, FileMode.OpenOrCreate);
            long lengt = f1.Length;
            byte[] Array = new byte[lengt];
            char[] Array1=new char[lengt];
            int readed = f1.Read(Array, 0, (int)lengt);
            for (int i = 0; i < lengt; i++)
                Console.Write(Array[i]+"\t");
            Console.WriteLine("\naAmount of readed bytes is: {0}", readed);
            int readed1 = Convert.ToBase64CharArray(Array, 0, (int)lengt, Array1, lengt, Base64FormattingOptions.None);
            for (int i = 0; i <readed1; i++)
                Console.Write(Array1[i] + "\t");
            Console.ReadKey();
проблема в 11 строкею может кто небудь помомет
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.05.2013, 13:33
Помогаю со студенческими работами здесь

Чтение порции байтов из byte[]
Уважаемые форумчане подскажите такой вопрос имеется byte заполненный байтами , условно в нем как бы хранятся строки таблицы, ...

Чтение нужного байта из массива байтов
Подскажите плиз, как считать определнный байт из массива, есть вот такой массив byte bytes2 = { 1, 3, 56, 78 }; Необходимо...

Чтение байтов из потока файлового ввода-вывода
Никогда не работал в командной строке. Подскажите как с помощью программы считать данные из файла. using System; using...

c# SerialPort.ReadExisting Чтение байтов из последовательного порта
Доброе время суток. Подскажите пожалуйста каким образом используя SerialPort.ReadExisting прочитать данные из порта в формате байтов. На...

Масcив байтов из файла
Подскажите как получить массив байтов из файла? Добавлено через 13 минут бинарного*


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru