С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
Nazikow
0 / 0 / 0
Регистрация: 25.04.2015
Сообщений: 5
1

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

24.11.2015, 21:14. Просмотров 1048. Ответов 4
Метки нет (Все метки)

Всем привет! Помогите решить задачу, если не трудно конечно! Очень прошу, пожалуйста!
В существующем типизированном файле, элементами которого являются числа, изменить на заданное число:
а) первый элемент;
б) пятый элемент;
в) k-й элемент;
г) последний элемент.
Новое значение вводится с клавиатуры.
+ Не могу понять надо файл создать в или просто указать адрес. В инете нашла как просто удалить текст из файла, а как изменять текст нет.
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.11.2015, 21:14
Ответы с готовыми решениями:

В двоичном файле, элементами которого являются целые числа.
В двоичном файле, элементами которого являются целые числа. Удалить из него число, записанное после...

Программа формирования массива, элементами которого являются цифры числа N
Здравствуйте, есть такая задача: Дано натуральное число N. Составить программу формирования...

Создать массив, элементами которого являются суммы делителей каждого числа другого массива
Дан двумерный массив, который содержит не более 10 строк и не более 10 столбцов. Создать новый...

Создать новый массив, элементами которого являются только положительные числа из старого массива.
Дан одномерный массив, который содержит не более 40 целых чисел. Создать новый массив, элементами...

Сформировать одномерный массив L(m), элементами которого являются суммы j столбца
Помогите,пожалуйста) Никак не могу понять... Дана матрица K(m.n). Сформировать одномерный массив...

4
Хозяин
Заблокирован
24.11.2015, 22:22 2
Создаем класс с полями, делаем обертку в List, считываем из файла в List данные, работаем с ними и затем перезаписываем файл обработанные данные из List.
0
Storm23
Эксперт .NETАвтор FAQ
6573 / 3985 / 1449
Регистрация: 11.01.2015
Сообщений: 5,159
Записей в блоге: 32
24.11.2015, 22:44 3
Лучший ответ Сообщение было отмечено Nazikow как решение

Решение

Цитата Сообщение от Nazikow Посмотреть сообщение
В существующем типизированном файле, элементами которого являются числа, изменить на заданное число:
а) первый элемент;
б) пятый элемент;
в) k-й элемент;
г) последний элемент.
Новое значение вводится с клавиатуры.
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
44
45
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);
            }
        }
    }
}
Файл до внесения изменений:
В существующем типизированном файле, элементами которого являются числа, изменить на заданное число


После изменений (введено число 11):
В существующем типизированном файле, элементами которого являются числа, изменить на заданное число


Цитата Сообщение от Nazikow Посмотреть сообщение
В инете нашла как просто удалить текст из файла, а как изменять текст нет.
Типизированный файл - это НЕ текстовый файл.
1
Nazikow
0 / 0 / 0
Регистрация: 25.04.2015
Сообщений: 5
01.12.2015, 19:29  [ТС] 4
Цитата Сообщение от Storm23 Посмотреть сообщение
Файл до внесения изменений:
После изменений (введено число 11):
Извините, конечно что туплю. Но я не могу вывести ответ. У меня не вышло как у вас на изображении. Подскажите пожалуйста мне еще раз как найти результат. Заранее спасибо.
0
Storm23
Эксперт .NETАвтор FAQ
6573 / 3985 / 1449
Регистрация: 11.01.2015
Сообщений: 5,159
Записей в блоге: 32
01.12.2015, 19:35 5
Цитата Сообщение от Nazikow Посмотреть сообщение
Извините, конечно что туплю. Но я не могу вывести ответ. У меня не вышло как у вас на изображении. Подскажите пожалуйста мне еще раз как найти результат. Заранее спасибо.
Програмка просто создает файл. Просматривать же файл нужно в другой программе, которая позволяет просматривать бинарные файлы. На скринах - используется FAR. В FAR - клавиша F3 (и затем F4) - открывает файл на просмотр.
0
01.12.2015, 19:35
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.12.2015, 19:35

Создать массив, элементами которого являются расстояния между точками
Написать подпрограмму, реализующую решение задачи: На плоскости заданы своими координатами n точек....

Сформировать одномерный массив, элементами которого являются суммы элементов i-ой строки
Дана матрица А(n,m). Сформировать одномерный массив В(n), элементами которого являются суммы...

Сформировать массив В, элементами которого являются большие из двух рядом стоящих в массиве А чисел
Задание: Дан массив A(N). Сформировать массив В(М), элементами которого являются большие из двух...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru