В существующем типизированном файле, элементами которого являются числа, изменить на заданное число - C#
Формулировка задачи:
Всем привет! Помогите решить задачу, если не трудно конечно! Очень прошу, пожалуйста!
В существующем типизированном файле, элементами которого являются числа, изменить на заданное число:
а) первый элемент;
б) пятый элемент;
в) k-й элемент;
г) последний элемент.
Новое значение вводится с клавиатуры.
+ Не могу понять надо файл создать в или просто указать адрес. В инете нашла как просто удалить текст из файла, а как изменять текст нет.
Решение задачи: «В существующем типизированном файле, элементами которого являются числа, изменить на заданное число»
textual
Листинг программы
using System; using System.IO; namespace ConsoleApplication203 { class Program { static void Main(string[] args) { var fileName = "c:\\temp.bin"; //создадим тестовый файл using (var fs = new FileStream(fileName, FileMode.Create)) using (var sw = new BinaryWriter(fs)) for (int i = 0; i < 10; i++)//запишем в файл числа от 0 до 9 sw.Write(i); //ввод нового значения Console.Write("Enter new value: "); var newVal = int.Parse(Console.ReadLine()); //размер элемента файла в байтах var elemSize = sizeof (int); //изменим первый элемент ChangeElement(fileName, elemSize, 0, newVal); //изменим пятый элемент ChangeElement(fileName, elemSize, 4, newVal); //изменим последний элемент var fileSize = new FileInfo(fileName).Length;//размер файла в байтах var elemCount = (int)fileSize/elemSize;//число элементов в файле ChangeElement(fileName, elemSize, elemCount - 1, newVal);//записываем в последнюю позицию } static void ChangeElement(string fileName, int elementSize, int elementIndex, int newValue) { using(var fs = new FileStream(fileName, FileMode.Open)) using (var sw = new BinaryWriter(fs)) { fs.Seek(elementSize*elementIndex, SeekOrigin.Begin); sw.Write(newValue); } } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д