В существующем типизированном файле, элементами которого являются числа, изменить на заданное число - C#

Узнай цену своей работы

Формулировка задачи:

Всем привет! Помогите решить задачу, если не трудно конечно! Очень прошу, пожалуйста! В существующем типизированном файле, элементами которого являются числа, изменить на заданное число: а) первый элемент; б) пятый элемент; в) k-й элемент; г) последний элемент. Новое значение вводится с клавиатуры. + Не могу понять надо файл создать в или просто указать адрес. В инете нашла как просто удалить текст из файла, а как изменять текст нет.

Решение задачи: «В существующем типизированном файле, элементами которого являются числа, изменить на заданное число»

textual
Листинг программы
  1. using System;
  2. using System.IO;
  3.  
  4. namespace ConsoleApplication203
  5. {
  6.     class Program
  7.     {
  8.         static void Main(string[] args)
  9.         {
  10.             var fileName = "c:\\temp.bin";
  11.  
  12.             //создадим тестовый файл
  13.             using (var fs = new FileStream(fileName, FileMode.Create))
  14.             using (var sw = new BinaryWriter(fs))
  15.             for (int i = 0; i < 10; i++)//запишем в файл числа от 0 до 9
  16.                 sw.Write(i);
  17.  
  18.             //ввод нового значения
  19.             Console.Write("Enter new value: ");
  20.             var newVal = int.Parse(Console.ReadLine());
  21.  
  22.             //размер элемента файла в байтах
  23.             var elemSize = sizeof (int);
  24.  
  25.             //изменим первый элемент
  26.             ChangeElement(fileName, elemSize, 0, newVal);
  27.             //изменим пятый элемент
  28.             ChangeElement(fileName, elemSize, 4, newVal);
  29.             //изменим последний элемент
  30.             var fileSize = new FileInfo(fileName).Length;//размер файла в байтах
  31.             var elemCount = (int)fileSize/elemSize;//число элементов в файле
  32.             ChangeElement(fileName, elemSize, elemCount - 1, newVal);//записываем в последнюю позицию
  33.         }
  34.  
  35.         static void ChangeElement(string fileName, int elementSize, int elementIndex, int newValue)
  36.         {
  37.             using(var fs = new FileStream(fileName, FileMode.Open))
  38.             using (var sw = new BinaryWriter(fs))
  39.             {
  40.                 fs.Seek(elementSize*elementIndex, SeekOrigin.Begin);
  41.                 sw.Write(newValue);
  42.             }
  43.         }
  44.     }
  45. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.133 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы