С# StreamReader аналог pop из Stack

98
12 сентября 2021, 13:30

Есть некий файл с текстом/данными, и есть StreanReaderкоторый уже связан с этим файлом. Мне нужно получать из файла n-символов из позиции x, и удалять все полученные символы из файла. что то около такого

файл с данными :

я собрал 5 яблок и 3 сливы

Ожидаемый код

string text = reader.Pop(5); // "я соб"

оставшиеся данные в файле

рал 5 яблок и 3 сливы

Есть ли уже встроенный функционал подобного типа, или же нужно ручками писать такое?

Answer 1

Такого встроенного функционала в стандартных библиотеках .NET Framework нет. Возможно, есть third-party решения.

Сделайте свой метод.

По шагам:

  1. Считайте данные

    string str = string.Empty;
    using (StreamReader reader = new StreamReader(*путь_к_файлу*)) 
    {
        str = reader.ReadToEnd();
    }
    
  2. Модифицируйте их

    string result = string.Empty;
    result = str.Remove(0, count);
    

Где 0 - стартовая позиция, count - количество удаляемых символов.

  1. Запишите

    using (StreamWriter writer = new StreamWriter(*путь_к_файлу*, false))
    {
         writer.Write(result);
    }
    

Обратите внимание, что второй параметр конструктора StreamWriter как раз отвечает за перезапись файла

READ ALSO
Что означает возвращаемый тип void? [закрыт]

Что означает возвращаемый тип void? [закрыт]

Хотите улучшить этот вопрос? Добавьте больше подробностей и уточните проблему, отредактировав это сообщение

88
fwrite php win непонятное поведение

fwrite php win непонятное поведение

При некоррекном завершении работы пк в файле появляются NULL символы (chr(0)), попытаемся их убрать:

98
Удалить ссылку внутри изображения

Удалить ссылку внутри изображения

Все привет! Я получаю ссылку на изображение, внизу которого находится ссылка, причем это не элемент html, а оригинальное изображениеВозможно...

87