Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/15: Рейтинг темы: голосов - 15, средняя оценка - 4.60
 Аватар для Red-Cat-Fat
4 / 4 / 4
Регистрация: 11.10.2013
Сообщений: 123

Чтение типизированных файлов

02.01.2014, 19:22. Показов 3098. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задача проста:
Вводится трока - необходимо вывести ту же строку в обратном порядке.
Вроде бы всё просто - поделил строку на массивы и склеил массив в обратном порядке в стринг. Однако... необходимо использовать бинарные файлы. Т.е. вводится строка - она записывается в бинарный файл, а затем считывается с конца и выводится в TextBox
Я написал только часть кода, а именно запись в бинарный файл:
C#
1
2
3
4
5
6
7
8
9
10
11
public void run()
{
      string text = textBox1.Text;
      FileStream aFile = new FileStream("input.dat", FileMode.Create);
      charData = text.ToCharArray();
      byData = new byte[4 * charData.Length];
      Encoder e = Encoding.Unicode.GetEncoder();
      e.GetBytes(charData, 0, charData.Length, byData, 0, true);
      aFile.Seek(0, SeekOrigin.Begin);
      aFile.Write(byData, 0, byData.Length);
}
А вот с чтением проблемы. Не могли бы вы мне подсказать как "читать читать бинарники с конца" и желательно прокомментить.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.01.2014, 19:22
Ответы с готовыми решениями:

Создание бинарных файлов. Чтение и запись бинарных файлов
Здраствуйте. Сколько я не рылся в нете сколько не искал, как то все не доходит до меня тупого). На работе есть задание: 1. есть данные...

Чтение файлов
Здавствуйте! Условие проекта далеко от того что я делаю,но здесь пытаюсь выполнить чтение файла с помощью подпрограмы,не знаю как тип...

чтение файлов C#
форма, на ней 2 кнопки, надо чтобы когда нажимаешь на 1-ю, открывается один файл (формат rtf), когда на 2-ю, второй файл (rtf), надо чтобы...

9
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
02.01.2014, 19:56
Red-Cat-Fat, а зачем такой изврат? Строка это уже массив символов. Зачем еще переводить и записывать как массив? Если вы запишете строку "абаба" или массив символов 'a' 'б' 'a' 'б' 'a' - разницы нет в итоге же.
0
 Аватар для Red-Cat-Fat
4 / 4 / 4
Регистрация: 11.10.2013
Сообщений: 123
02.01.2014, 22:17  [ТС]
Цитата Сообщение от Psilon Посмотреть сообщение
Red-Cat-Fat, а зачем такой изврат? Строка это уже массив символов. Зачем еще переводить и записывать как массив? Если вы запишете строку "абаба" или массив символов 'a' 'б' 'a' 'б' 'a' - разницы нет в итоге же.
Так метод GetBytes() требует именно массив char
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
02.01.2014, 22:20
Red-Cat-Fat, а в чем смысл всего этого? Почему нельзя просто записать как текст? ОН его и так пишет, как текст. Ятд он точно также открывается в блокноте. Стоит ему только сказать, что числа нужно интерпретировать как char.
0
 Аватар для Red-Cat-Fat
4 / 4 / 4
Регистрация: 11.10.2013
Сообщений: 123
02.01.2014, 22:30  [ТС]
Цитата Сообщение от Psilon Посмотреть сообщение
Red-Cat-Fat, а в чем смысл всего этого? Почему нельзя просто записать как текст? ОН его и так пишет, как текст. Ятд он точно также открывается в блокноте. Стоит ему только сказать, что числа нужно интерпретировать как char.
Понимаете ли... С меня преподаватель это требует. Решение именно таким вот методом через 5 точку. Вот и бьюсь над решением этой задачи.
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
02.01.2014, 22:46
Red-Cat-Fat,
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
40
41
42
43
using System;
using System.IO;
using System.Text;
 
namespace ConsoleApplication76
{
    class Program
    {
        static void Main()
        {
            string text = "Hello world!";
 
            SaveText("input.dat", text);
 
 
            string loadText = LoadText("input.dat");
 
            Console.WriteLine(loadText);
        }
 
        static void SaveText(string path, string content)
        {
            using (var fs = new FileStream(path, FileMode.Create))
            {
                var bytes = Encoding.UTF8.GetBytes(content);
                fs.Write(bytes, 0, bytes.Length);
            }
        }
 
        static string LoadText(string path)
        {
            using (var fs = new FileStream(path, FileMode.Open))
            {
                var bytes = new byte[fs.Length];
                for (int i = 0; i < bytes.Length; i++)
                {
                    bytes[i] = (byte) fs.ReadByte();
                }
                return Encoding.UTF8.GetString(bytes);
            }
        }
    }
}
Добавлено через 52 секунды
не забываем использовать юзинги при работе с IDisposable, в частности - всякие FileStream, StreamReader и пр
1
02.01.2014, 23:11

Не по теме:

Цитата Сообщение от Psilon Посмотреть сообщение
не забываем использовать юзинги при работе с IDisposable
можете пояснить зачем это так нужно?

0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
02.01.2014, 23:14
rattrapper, ресурсы все равно будут освобождены в деструкторе, но при отработке деструктора сборщик не может удалить объект. То есть объект переживет будет удален максимум после второй сборки. Думаю. в CLR via C# этот механизм описан. Погугли очередь финализации.
1
 Аватар для Red-Cat-Fat
4 / 4 / 4
Регистрация: 11.10.2013
Сообщений: 123
02.01.2014, 23:34  [ТС]
Psilon, а разве
C#
1
using (var fs = new FileStream(path, FileMode.Create))
и
C#
1
FileStream fs = new FileStream(path, FileMode.Create))
не одно и тоже?
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
03.01.2014, 01:04
Red-Cat-Fat, слово "using" видите? Проявите дедуктивный метод и подумайте
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.01.2014, 01:04
Помогаю со студенческими работами здесь

Чтение MATLAB файлов
Здравствуйте, есть несколько .mat файлов в которых содержатся различные параметры: числа, массивы чисел размером до 1000х1000. Необходимо...

запись и чтение файлов
Возникла проблема.Нужно читать из файла определенные значения...Т.е. как конфиг,но не совсем.. Т.е надо найти строчку в файле,и прочитать...

Чтение бинарных файлов
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using...

Чтение файлов из XML
Привет не подскажите как мне считать дату с файла &lt;chapter&gt; &lt;item&gt; &lt;date&gt;2014-03-11&lt;/date&gt; &lt;code&gt;392&lt;/code&gt; ...

Чтение файлов из папки
Здравствуйте, подскажите пожалуйста.... Пытаюсь считать файлы из папки и записать их в файлы. В случае с одним файлом считывание и...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
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