Chris Dewey Ответов: 2

Борьба с чтением выбранного txt из txt файла с помощью C#


У меня есть текстовый файл под названием reports.txt что я могу получить, чтобы открыть на Rich Text, но есть ли в любом случае, что я могу получить его, чтобы открыть, но только отображать выделенный текст

файл содержит процессор результат: 322 процессора общие: 708473 процессора целевой: 341030088 ОЗУ результат: 135 размер оперативной памяти (МБ): 4001 скорость ОЗУ (МБ/с): 12144 вычисления на графическом процессоре (Гфлопс): 181 диск результат: 49 записи на диск (МБ/с): 117 чтения диска (МБ/с): 322

например, я хотел бы, чтобы он отображал 322, 135, 49 в виде текстового поля. Вы можете сделать это, если кто-нибудь сможет мне помочь, пожалуйста.

Что я уже пробовал:

Я пробовал rich text, но мне кажется, что я могу открыть только весь txt-файл.

2 Ответов

Рейтинг:
1

OriginalGriff

Вы можете попробовать регулярное выражение:

(?<=Score:\s+)\d+(?=\s+)
Должны делать это


Chris Dewey

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

частная novabnt_Click недействительным(объект отправителя, EventArgs в электронной)
{

TextReader reader = новый StreamReader(@"C:\source\results.txt");

richtextbox1 отображение.Текст = читатель.ReadToEnd();

читатель.Закрывать();
}

OriginalGriff

Итак, первое, что вам нужно сделать, это посмотреть на фактический файл данных (или несколько разных файлов, если это возможно), потому что очень важно точно знать, с чем вы должны работать.
Например, код для борьбы с этим:
&ЛТ;заранее Ланг="текст"&ГТ;процессор результат: 322 процессора общие: 708473 процессора целевой: 341030088 ОЗУ результат: 135 размер оперативной памяти (МБ): 4001 скорость ОЗУ (МБ/с): 12144 вычисления на графическом процессоре (Гфлопс): 181 диск результат: 49 записи на диск (МБ/с): 117 чтения диска (МБ/с): 322
Это отличается от кода, чтобы иметь дело с этим:
<pre lang="text">оценка процессора: 322
Общий процессор: 708473
Целевой процессор: 341030088
Счет оперативной памяти: 135
Размер оперативной памяти (МБ): 4001
Скорость оперативной памяти (МБ/с): 12144
GPU Compute (GFLOPS): 181
Оценка Диска: 49
Запись на диск (МБ/с): 117
Чтение диска (МБ/с): 322Because во втором он уже разбит на строки, и это делает вашу работу намного проще!
И если у вас есть несколько образцов, вы можете проверить, насколько сильно данные в файле меняются между "запусками" - всегда ли это в одном и том же порядке? Всегда ли все предметы присутствуют, и никаких других? Можете ли вы полагаться на "счет: ", или вам нужно быть более конкретным? Есть ли вообще какие-либо другие данные в файле?

Проверьте это и вернитесь ко мне - вам еще не обязательно изучать регулярные выражения (или сокращенно "регулярное выражение") - могут быть простые способы справиться с этим, которые вписываются в ваши текущие знания (не то чтобы я понятия не имел, что вы делаете и не знаете, как это делать!)

Рейтинг:
1

Chris Dewey

    private void novabnt_Click(object sender, EventArgs e)
{
    var dict = File.ReadAllLines(@"c:\source\reports.txt")
    .Select(f => f.Split(':'))
    .Select(f => new
    {
        Name = f[0].Trim(),
        Value = f[1].Trim()
    })
    .ToDictionary(f => f.Name, f => f.Value);

    txtrams.Text = String.Empty;
    txtrams.AppendText(dict["RAM Score"]);
    txtCPUS.Text = String.Empty;
    txtCPUS.AppendText(dict["CPU Score"]);
    txthdds.Text = String.Empty;
    txthdds.AppendText(dict["Disk Score"]);