С# Каким способом открыть файл и вытащить из строки конкретный набор символов?
Есть файл, в котором 1 строка из 5 тыс. хаотичных символов. Нужно из этой строки достать неизвестный набор знаков, на позиции между 2549 и 2561 символом (10 знаков) и записать их в новый файл.
Хотел сделать перебор foreach символов, но FileStream с ним не работает и вообще я не уверен что правильным способом его открыл, но в консоль выводит всё что в файле. Только начинаю изучение. Прошу помощи.
using System;
using System.IO;
namespace Corvette
{
class Program
{
static void Main(string[] args)
{
string path = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory)+$@"\file.txt";
FileStream myFile = File.OpenRead(path);
if (File.Exists(path))
{
StreamReader file = new StreamReader(path);
Console.WriteLine(file.ReadLine());
}
}
}
}
Ответы (1 шт):
Автор решения: Cordis
→ Ссылка
Вариант попроще:
int firstSymbolPos = 2550;
int lastSymbolPos = 2560;
string s = File.ReadAllText(path).Substring(firstSymbolPos, lastSymbolPos - firstSymbolPos);
Console.WriteLine(s);
Вариант посложнее:
static int symbolsOffset = 0;
static int lastSymbolPos = 6;
static byte[] ReadBytes(Stream stream, int firstSymbolPos, int lastSymbolPos)
{
stream.Position = firstSymbolPos;
int count = lastSymbolPos - firstSymbolPos;
byte[] bytes = new byte[count];
for (int i = 0; i < count; i++)
bytes[i] = (byte)stream.ReadByte();
return bytes;
}
Почему бы и нет