Как подключить текстовый файл к проекту c
Перейти к содержимому

Как подключить текстовый файл к проекту c

Использование Visual C# для чтения и записи в текстовый файл

В этой статье описано, как выполнить чтение и запись в текстовый файл с помощью Visual C#.

Оригинальная версия продукта: Visual Studio
Оригинальный номер базы знаний: 816149

Сводка

В разделе Чтение текстового файла этой статьи описывается, как использовать класс StreamReader для чтения текстового файла. В разделах Запись в текстовый файл (пример 1) и Запись в текстовый файл (пример 2) описывается, как использовать класс StreamWriter для записи текста в файл.

Чтение текстового файла

В следующем коде используется класс StreamReader для открытия, чтения и закрытия текстового файла. Можно передать путь к текстовому файлу в конструктор StreamReader для автоматического открытия файла. Метод ReadLine считывает каждую строку текста и перемещает указатель файла на следующую строку по мере чтения. Если метод ReadLine достигает конца файла, он возвращает пустую ссылку. Дополнительные сведения см. в разделе Класс StreamReader.

Создайте пример текстового файла в Блокноте. Выполните приведенные ниже действия.

  1. Вставьте текст hello world в Блокнот.
  2. Сохраните файл как Sample.txt.

Запустите Microsoft Visual Studio.

В меню Файл выберите пункт Создать, а затем выберите Проект.

Выберите Проекты Visual C# в разделе Типы проектов, а затем выберите Консольное приложение в разделе Шаблоны.

Добавьте следующий код в начало файла Class1.cs:

Добавьте указанный ниже код в метод Main :

В меню Отладка выберите Пуск для компиляции и запуска приложения. Нажмите клавишу ВВОД, чтобы закрыть окно консоли. В окне консоли отображается содержимое файла Sample.txt:

Запись в текстовый файл (пример 1)

В следующем коде используется класс StreamWriter для открытия, записи и закрытия текстового файла. Аналогично тому, как используется класс StreamReader , можно передать путь к текстовому файлу в конструктор StreamWriter для автоматического открытия файла. Метод WriteLine записывает всю текстовую строку в текстовый файл.

Запустите Visual Studio.

В меню Файл выберите пункт Создать, а затем выберите Проект.

Выберите Проекты Visual C# в разделе Типы проектов, а затем выберите Консольное приложение в разделе Шаблоны.

Добавьте следующий код в начало файла Class1.cs:

Добавьте указанный ниже код в метод Main :

В меню Отладка выберите Пуск для компиляции и запуска приложения. Этот код создает файл с именем Test.txt на диске C. Откройте Test.txt в текстовом редакторе, например в Блокноте. Test.txt содержит две текстовые строки:

Запись в текстовый файл (пример 2)

В следующем коде используется класс StreamWriter для открытия, записи и закрытия текстового файла. В отличие от предыдущего примера, этот код передает в конструктор два дополнительных параметра. Первый параметр — путь к файлу и имя файла. Второй параметр, true , указывает, что файл открыт в режиме добавления. Если вы задаете false для второго параметра, содержимое файла перезаписывается при каждом запуске кода. Третий параметр задает Unicode , чтобы кодирование файла в StreamWriter выполнялось в формате Юникода. Можно также указать следующие методы кодирования для третьего параметра:

  • ASC11
  • Юникод
  • UTF7
  • UTF8

Метод Write аналогичен методу WriteLine , за исключением того, что метод Write не вставляет автоматически сочетание символов возврата каретки или перевода строки (CR/LF). Это полезно, когда нужно одновременно записывать по одному символу.

Запустите Visual Studio.

В меню Файл выберите пункт Создать и затем пункт Проект.

Нажмите Проекты Visual C# в разделе Типы проектов, а затем нажмите Консольное приложение в разделе Шаблоны.

Добавьте следующий код в начало файла Class1.cs:

Добавьте указанный ниже код в метод Main :

В меню Отладка выберите Пуск для компиляции и запуска приложения. Этот код создает файл с именем Test1.txt на диске C. Откройте Test1.txt в текстовом редакторе, например в Блокноте. Test1.txt содержит одну текстовую строку: 0123456789.

Полный код сборки для чтения текстового файла

Полный код сборки для записи в текстовый файл (версия 1)

Полный код сборки для записи в текстовый файл (версия 2)

Устранение неполадок

Перенос кода в блок try-catch-finally для обработки ошибок и исключений является хорошей практикой программирования, когда речь заходит о выполнении любых операций с файлом. В частности, может потребоваться освободить дескрипторы файла в окончательном блоке, чтобы файл не был заблокирован на неопределенный срок. Некоторые возможные ошибки включают файл, который не существует, или файл, который уже используется.

Visual Studio: как добавить текстовый файл в C#-проект и отобразить его в древе проекта?

Во всех примерах по работе с текстовыми файлами (расширение .txt ) на языке C#, которые я видел, текстовый файл предлагалось сохранять вне проекта. Но я хочу, чтобы текстовый файл хранился внутри решения (например, в подпапке Data ). Visual Studio в меню добавления нового файла предлагает добавлять только определённые типы файлов, среди которых нет текстовых. Таким образом, насколько я на данный момент знаю, текстовый файл можно добавить в проект только с помощью проводника Windows (или сторонних аналогов). Если это сделать, то хотя тест на наличие файла (код ниже) и даст положительный результат, файл не будет отображаться в древе проекта.

Visual Studio в меню добавления нового файла предлагает добавлять только определённые типы файлов, среди которых нет текстовых.

Разве? В окне добавления новго элемента выберите раздел "Общие" и Вы увидите в числе прочих "Текстовый файл". введите сюда описание изображения Если файл создан вне студии, в конктекстном меню проекта есть пункт "Добавить"-> "Существующий элемент". Он откроет стандартный диалог Windows для открытия файлов. Выбираете в правом нижнем углу "Все файлы" и можете добавить в проект какой угодно файл. В том числе текстовый.

Уроки по программированию

Урок 12.3. Включение файлов

12.3. Включение файлов

Турбо Си позволяет программисту включать в текст своей программы другие
текстовые файлы. Включение осуществляется с помощью директивы препроцессора
#include. Общая форма записи директивы #include:

#include <имя файла> или#include «путь\имя файла

При использовании
первой формы записи имя файла заключается в угловые скобки. В этом случае
препроцессор ищет этот файл в специальном директории, который программист
указывает компилятору. Таких директориев может быть один или несколько. В
случае, если программист указал несколько директориев, препроцессор ищет
требуемый файл во всех директориях, указанных программистом (в том порядке, в
котором они указаны) до тех пор, пока не найдет. При использовании второй формы
записи имя файла заключается в кавычки. В этом случае путь может отсутствовать
и тогда файл ищется в текущем директории, а потом (если он не найден в текущем)
— как и при первой форме записи — файл ищется в специальном директории,
указанном программистом компилятору.

Если при второй форме записи путь указан, файл ищется только в том
директории, который указан в директиве #include.

препрцессор ищет файл stdio.h
в специальном директории, указанном программистом компилятору и, найдя,
включает в программу;

препроцессор ищет файл myvar.h
сначала в текущем директории, а в случае, если в текущем директории этого файла
нет, препроцессор ищет файл myvar.h
в специальном директории, указанном программистом компилятору и, найдя,
включает в программу;

препроцессор ищет файл mymacro.h только в директории c:\tc\macros и, найдя, включает в программу.

Если препроцессор не находит требуемый файл в тех директориях, где он
его должен искать, программист получает сообщение об ошибке. Обычно первая
форма записи оператора #include используется для включения в программу
«стандартных» файлов, а вторая форма — для включения в программу
собственных файлов, написанных программистом.

Как правило, включаемые файлы содержат макроопределения и определения
функций. К примеру, файл stdio.h
содержит определения константы EOF,
макрофункций getchar(), putchar(), функций fscanf(), fopen() и других. Такие файлы называются
заголовочными, потому что их принято включать в начале программы. Обычно
заголовочные файлы состоят из операторов препроцессора. Для заголовочных файлов
принято использовать расширение .h (от английского header — заголовочный).

Файл, включаемый с помощью директивы #include, в свою очередь может содержать директивы #include и таким образом можно создавать небольшие
сжатые заголовочные файлы. С помощью директивы #include можно включать не только заголовочные файлы,
но и, к примеру, тексты функций.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *