C# самый простой способ хранения строк во внешнем файле

C# TL; DR: я хочу, чтобы пользователь мог вводить текст, который затем записывается во внешний файл, который затем может быть вызван позже в зависимости от положения в файле. Какой самый простой способ и форма для чтения и записи списка строк?

Очень любительский вопрос, но я не могу найти простой ответ в Интернете. Если мне не хватает чего-то очевидного, пожалуйста, перенаправьте меня. Я пишу очень простую программу, в которой пользователь может ввести строку, которая затем записывается (добавляется) во внешний файл, из которого позже строка может быть вызвана в зависимости от позиции в файле. Я нашел такие вещи, как JSON, файл ресурсов, база данных SQL ... Проблема в том, что из-за отсутствия у меня опыта программирования я понятия не имею, какой вариант лучше всего изучить.

Пример того, чего я хочу добиться:

Пользователь вводит в текстовое поле строки «Собака», «Кошка» и «Лошадь». Каждая из этих строк добавляется во внешний файл. Затем пользователь набирает 2-й номер в списке, на который программа возвращает «Кошка».

Спасибо!

Вы не можете найти в Интернете ничего о чтении и записи строк в / из файла ...? Вы нашли документацию по классу File? msdn.microsoft.com/en-us/library/system.io.file(v=vs.110).as‌ px

Broots Waymb 10.08.2018 15:56
System.IO.File.WriteAllText("C:\path\to\your\file.txt", "your text here")
jtate 10.08.2018 15:58

Я не могу найти / выбрать самый простой способ хранения строк во внешнем файле. Я смогу разобраться в чтении и письме, если узнаю, какой метод будет работать лучше всего. @BrootsWaymb

Tjeerd Bakker 10.08.2018 15:59

Существует множество простых способов чтения / записи файлов. Вы получите десятки качественных результатов, просто набрав в Google что-то вроде «пример файла чтения / записи C#» или что-то в этом роде. Я также немного смущен тем, что вы подразумеваете под «внешним» файлом. Что является внешним по отношению к файлу?

Broots Waymb 10.08.2018 16:01

Что вы имеете в виду под "работать лучше всего"? Что такое "Лучший", обычно зависит от ваших конкретных требований. И даже когда требования известны, это все еще отчасти субъективно (поскольку разные люди предпочитают разные способы работы, используют разные библиотеки, предпочитают разные стили кода и т. д.) ...

bassfader 10.08.2018 16:03

Файл должен быть внешним по отношению к запущенной программе. Я смогу закрыть программу, открыть ее позже и по-прежнему иметь доступ к сохраненным данным @BrootsWaymb.

Tjeerd Bakker 10.08.2018 16:05

Вам нужно просто попробовать какой-то подход и посмотреть, как он работает. В вашем заголовке указано самый легкий, но в вашем комментарии указано Лучший. Это не то же самое. Просто попробуй что-нибудь.

Dan Wilson 10.08.2018 16:05

Предложенный System.IO.File.WriteAllText будет переопределять существующий файл каждый раз при его запуске (или так говорит Microsoft на msdn.microsoft.com/en-us/library/…) @jtate

Tjeerd Bakker 10.08.2018 16:05

@TjeerdBakker Я просто предлагал самый простой способ записи в файл. Если вы можете предоставить более конкретные требования и то, что вы пытаетесь выполнить, мы могли бы вам помочь.

jtate 10.08.2018 16:07

@TjeerdBakker - Этот пример из jtate - лишь один из многих способов записи в файл. Опять же, вам нужно провести небольшое исследование, чтобы найти, какой метод лучше всего подходит для ваших нужд. А если серьезно, просто посмотрите методы класса File. Здесь есть отличные возможности для начинающих.

Broots Waymb 10.08.2018 16:08

@bassfader с «лучшим», я имею в виду «Самый простой способ реализации для новичка». Он не должен быть быстрым, эффективным или способным обрабатывать миллиарды строк, он просто должен быть простым в программировании. Извините за отсутствие разъяснений!

Tjeerd Bakker 10.08.2018 16:08

Извините за отсутствие разъяснений, я все еще не совсем уверен, какие есть параметры, которые можно использовать для хранения длинного списка строк и какой вариант является самым основным.

Tjeerd Bakker 10.08.2018 16:09
0
12
323
1

Ответы 1

Если вы уже знаете, какие данные будут сохранены, я рекомендую использовать XML-сериализация. Это позволяет очень легко сохранять и читать файл. Связанный пример взят из Microsoft и показывает сериализуемый набор данных. Если вы хотите сохранить общий список вместо фиксированного объекта, вы можете найти эта ссылка полезна.

В качестве альтернативы вы можете сохранить данные в файле конфигурации вашего приложения (выполните поиск в Интернете по запросу «Конфигурация приложения C# для PROJECT_TYPE», где тип проекта - winforms / mvc / class library и т. д.)

Если требуются только строки, и, если OP знает, что строки не будут содержать разрывов строк, я бы предположил, что файлы XML или конфигурации избыточны. File.AppendAllLines и File.ReadAllLines были бы значительно проще IMO.

Jon Skeet 10.08.2018 16:19

Согласен с @DaisyShipton. Если OP не знаком с простым чтением / записью, XML определенно добавит ненужной путаницы. Решение сработает, но OP будет бороться гораздо больше за небольшую выгоду (если таковая будет).

Broots Waymb 10.08.2018 16:44

@DaisyShipton Это именно тот ответ, который я искал! Только строки, без разрывов строк, удобная навигация ... Идеально!

Tjeerd Bakker 10.08.2018 16:49

Другие вопросы по теме