Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
3 / 3 / 0
Регистрация: 20.01.2021
Сообщений: 83

Чтение из файла и запись в Dictionary

18.06.2022, 18:57. Показов 562. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
У меня есть текстовый файл, в котором лежат значения(значение=количество):
Мяч=2,
Кроссовки=1

Как можно прочитать значения из этого файла и использовать в другом методе?
Как вариант:
C#
1
2
3
4
5
6
7
public void ReadFromFile()
{
string[] Userlines = File.ReadAllLines("DUser.txt");
DUSer = Userlines.Select(l => l.Split(new[] { '=' }, 2)).ToDictionary(a => a[0], a => a[1]); 
    /// но тут записывается key:Мяч, Value: 2,Кроссовки=1
   //может лучше не Dictionary  а что-то другое использовать?
}
C#
1
2
3
4
5
6
7
8
9
10
11
public void UseBall()
{
string value1 = // вот сюда хотел бы передать значение "Мяч"
int value2 = // вот сюда хотел бы передать значение "2"
}
 
public void UseSneaker()
{
string value1 = // вот сюда хотел бы передать значение "Кроссовки"
int value2 = // вот сюда хотел бы передать значение "1"
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.06.2022, 18:57
Ответы с готовыми решениями:

Запись в файл и чтение из файла Dictionary(Of T, V)
Привет народ подскажите пожалуйста как можно записать в фаил.txt, Dictionary(Of T, V) формата (22.10.2018, "44444444444") и...

Чтение .txt-файла и запись предложений из него в Dictionary<int, string>
Коллеги, приветствую! Я начинающий программист C#, еще не волшебник, но учусь ) Прошу, подскажите, как можно решить такую задачу. ...

«Создание файла. Запись и чтение данных. Запись и чтение блоков данных из файла» Переделайте на с С++ на С
#include&lt;iostream&gt; #include&lt;ctime&gt; #include&lt;fstream&gt; #include&lt;random&gt; using namespace std; int main() { ofstream...

12
 Аватар для iLinks
800 / 458 / 237
Регистрация: 03.01.2017
Сообщений: 1,339
20.06.2022, 11:29
da_da_ya, не особо понятно, что вам нужно
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
static Dictionary<string, int> DUSer = new Dictionary<string, int>();
public void UseAnything(string key)
{
    if (DUSer.ContainsKey(key))
    {
        string value1 = key;// вот сюда хотел бы передать значение "Мяч"
        int value2 = DUSer[key];// вот сюда хотел бы передать значение "2"
        //Что делать то с переменными дальше?
    }
}
static void Main(string[] args)
{
    string path = @"DUser.txt";
    using (StreamReader reader = new StreamReader(path))
    {
        string line = string.Empty;
        while ((line = reader.ReadLine()) != null)
        {
            var kv = line.Split('=');
            DUSer.Add(kv[0], Convert.ToInt32(kv[1]));
        }
    }
    Console.ReadLine();
}
0
 Аватар для Doomov
1056 / 335 / 119
Регистрация: 28.11.2020
Сообщений: 1,066
20.06.2022, 16:04
Прочесть можно и так...
C#
1
2
3
4
5
6
7
8
    Dictionary<string,string> result = File.ReadAllLines(@"c:\Work\Загрузки\DUser.txt")
                                            .Select(x => x.Split('='))
                                            .ToDictionary(x => x[0], x => x[1]);
    //result.Dump();
    foreach(var item in result)
    {
        Console.WriteLine($"{item.Key} => {item.Value}");
    }
А в файле запись типа (квадратные скобки писать не надо. Здесь основное это товар и количество через знак равно):
[
Мяч=1
Сковородка=2
]

А если нужна еще и запись, то вариант такой:
C#
1
2
3
4
5
6
7
8
9
    var dictionary = new Dictionary<string, string>();
    var sb = new StringBuilder();
    foreach(var kv in dictionary) 
    { // В принципе, можно оптимизировать, если писать не в StringBuilder, а сразу в стрим
           // Но StringBuilder по мне лучше если у вас большой файл текстовый
            sb.AppendLine($"{kv.Key}={kv.Value}");
    }
    var text = sb.ToString();
    // Дальше пишем text в файл... Но это уже сами
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16140 / 11264 / 2888
Регистрация: 21.04.2018
Сообщений: 33,115
Записей в блоге: 2
20.06.2022, 16:10
Цитата Сообщение от da_da_ya Посмотреть сообщение
но тут записывается key:Мяч, Value: 2,Кроссовки=1
Если так записывает, значит формат читаемого файла не такой как вы показали.
0
 Аватар для iLinks
800 / 458 / 237
Регистрация: 03.01.2017
Сообщений: 1,339
20.06.2022, 16:27
Цитата Сообщение от da_da_ya Посмотреть сообщение
C#
1
File.ReadAllLines("DUser.txt")
Цитата Сообщение от da_da_ya Посмотреть сообщение
C#
1
.Select(l => l.Split(new[] { '=' }, 2)).ToDictionary(a => a[0], a => a[1]);
Цитата Сообщение от Doomov Посмотреть сообщение
C#
1
2
3
File.ReadAllLines(@"c:\Work\Загрузки\DUser.txt")
                                            .Select(x => x.Split('='))
                                            .ToDictionary(x => x[0], x => x[1])
Doomov, и к чему одно и тоже?
Цитата Сообщение от Doomov Посмотреть сообщение
квадратные скобки писать не надо
Про какие квадратные скобки речь? Автор нигде их не упоминал.

Добавлено через 11 минут
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Если так записывает, значит формат читаемого файла не такой как вы показали.
Элд Хасп, я либо туплю сегодня, либо в этой теме не понимаю что происходит
Кто с кем общается?)
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16140 / 11264 / 2888
Регистрация: 21.04.2018
Сообщений: 33,115
Записей в блоге: 2
20.06.2022, 16:43
Цитата Сообщение от iLinks Посмотреть сообщение
Кто с кем общается?)
Я ТC'у писал.
Он неверно показал либо как данные записаны в файле, либо результат работы его метода.
0
 Аватар для Doomov
1056 / 335 / 119
Регистрация: 28.11.2020
Сообщений: 1,066
20.06.2022, 16:53
А в файле запись типа (квадратные скобки писать не надо. Здесь основное это товар и количество через знак равно):
[
Мяч=1
Сковородка=2
]
_______________
Вот про эти я говорил. И что не понятно?
Просто я показал пример что должно быть записано в текстовом файле.
У меня нет файла, но есть мой пример с каким я работал для теста
0
 Аватар для Doomov
1056 / 335 / 119
Регистрация: 28.11.2020
Сообщений: 1,066
20.06.2022, 16:57
Вот сам файл
Вложения
Тип файла: txt DUser.txt (35 байт, 6 просмотров)
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16140 / 11264 / 2888
Регистрация: 21.04.2018
Сообщений: 33,115
Записей в блоге: 2
20.06.2022, 17:44
Цитата Сообщение от Doomov Посмотреть сообщение
Вот сам файл
Откуда у вас этот файл, ведь ТС же не выкладывал его?

Добавлено через 1 минуту
И этот файл не даст такого результата как написал ТС: но тут записывается key:Мяч, Value: 2,Кроссовки=1.
0
 Аватар для Doomov
1056 / 335 / 119
Регистрация: 28.11.2020
Сообщений: 1,066
20.06.2022, 17:54
Или вы плохо понимаете Dictionary, или...
Я объяснил что взял просто свой тестовый файл , проверил его в программе...
Все работает.
C#
1
2
3
4
5
6
7
    Dictionary<string,string> result = File.ReadAllLines(@"c:\Work\Загрузки\DUser.txt")
                                            .Select(x => x.Split('='))
                                            .ToDictionary(x => x[0], x => x[1]);
    foreach(var item in result)
    {
        Console.WriteLine($"{item.Key} => {item.Value}");
    }
Dictionary работает с двумя понятиями: Key и Value
Текстовый файл создается в соответствии этих понятий.
И как словарь здесь можно записать все что вы хотите.
Ключ=Значение
Что конкретно непонятно?

И я не понимаю вашего вопроса: Добавлено через 1 минуту И этот файл не даст такого результата как написал ТС: но тут записывается key:Мяч, Value: 2,Кроссовки=1.
Что вы имеете ввиду?
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16140 / 11264 / 2888
Регистрация: 21.04.2018
Сообщений: 33,115
Записей в блоге: 2
20.06.2022, 18:06
Цитата Сообщение от Doomov Посмотреть сообщение
Я объяснил что взял просто свой тестовый файл
У вас два акка что ли ?
da_da_ya - это тоже вы?

Цитата Сообщение от Doomov Посмотреть сообщение
Что вы имеете ввиду?
Описанным способом из вашего файла получается коллекция: key:Мяч, Value: 2; key:Кроссовки, Value: 1.
А в комментах кода из топа написано, что было получено key:Мяч, Value: 2,Кроссовки=1.
Вот это и непонятно.
Толи просто результат записан неверно, толи результат верный, но непонятно из какого файла он такой может быть получен.
0
 Аватар для Doomov
1056 / 335 / 119
Регистрация: 28.11.2020
Сообщений: 1,066
20.06.2022, 18:14
Элд Хасп, Без понятия. Я привел пример, рабочий пример. Проверил его на всякий случай.
Предложил второй вариант (СтроительСтрок - StringBuilder()). Его применял не в консоле, а в форме. Там запись была в текстБокс. А СтроительСтрок в этом варианте лучше.
Ладно на этом всё.

Кстати текстовый файл создал из задания-вопроса (da_da_ya)...
У меня есть текстовый файл, в котором лежат значения(значение=количество):
Мяч=2,
Кроссовки=1
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16140 / 11264 / 2888
Регистрация: 21.04.2018
Сообщений: 33,115
Записей в блоге: 2
20.06.2022, 18:20
Цитата Сообщение от Doomov Посмотреть сообщение
Без понятия. Я привел пример, рабочий пример.
Ок!
Тогда понятно. К вашему решению вопросов нет.
Я изначально интересовался только ТС и просил его уточнить изложенную им информацию в вопросе.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.06.2022, 18:20
Помогаю со студенческими работами здесь

Считывание базы данных из текстового файла и запись ее в Dictionary<>
Всем привет! У меня задача создать базу данных в текстовом файле и работать с ней , но у меня есть проблема , я не понимаю как считать эту...

Чтение файла, чтение названия папки где находится файл, запись данных на PHP
Допустим у нас есть структура с папками типа Large -&gt; Vehicles -&gt; Firetruck_0 В этой папке лежит файл формата .dat Что нужно сделать? ...

Ввод с клавиатуры и запись в файл, чтение из файла и запись в массив, вывод из массива на экран
1.Ввод с клавиатуры и запись в файл, чтение из файла и запись в массив, вывод из массива на экран 2.Ввод с клавиатуры и запись в массив,...

Запись и чтение *.txt файла - запись частичная
Доброе время суток! Помогите решить проблемку. У меня либо не полностью считывается файл, либо не полностью записывается! Не могу понять в...

Чтение номеров из файла и запись их арифметической среды в конце файла
Точно не понял задание, но мне сказали это сделать. &quot;Чтение номеров из файла и запись их арифметической среды в конце...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru