В существующем типизированном файле, элементами которого являются числа, изменить на заданное число - 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);
            }
        }
    }
}

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


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

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

15   голосов , оценка 4.133 из 5
Похожие ответы