Уроки программирования, алгоритмы, статьи, исходники, примеры программ и полезные советы
Программа, которая выводит на экран содержимое файла
В этом уроке мы покажем, как средствами C# прочитать текстовый файл и вывести его содержимое на экран компьютера в консоль.
Сначала необходимо с помощью директивы using подключить пространство имен System.IO (в нем описан необходимый для данной задачи класс).
using System . IO ;
Теперь создадим экземпляр класса StreamReader. StreamReader — это класс который позволяет считывать символы из потока байтов в определенной кодировке. Инициализируем создаваемый экземпляр класса именем файла, из которого будем производить считывание текста.
StreamReader sr = new StreamReader ( «textfile.txt» ) ;
Если указать просто имя файла без пути к нему (как в данном случае textfile.txt), то файл необходимо расположить в каталоге binDebug вашего проекта. Если текстовый файл располагается в какой-либо другой папке, то необходимо указать к нему полный путь.
Работа с файлами с++. Запись в файл. c++ ofstream. Изучение С++ для начинающих. Урок #115
Объявим строковую переменную s. Она нам понадобится для хранения считанной строки.
Далее напишем такой код:
while ( sr . EndOfStream ! = true )
s = sr . ReadLine ( ) ;
Console . WriteLine ( s ) ;
В цикле while происходит считывание файла построчно с помощью метода класса StreamReader ReadLine(), считанная строка присваивается строковой переменной s. С помощью оператора Console.WriteLine(s) считанная строка выводится в консоль.
Цикл while продолжается до тех пор, пока не будет достигнут конец файла.
Свойство EndOfStream указывается достигнут ли конец файла. Оно имеет логическое значение true, если конец файла достигнут, и логическое значение false в противном случае.
Последнее, что нужно сделать, это закрыть считывающий символьный поток из файла.
В итоге у вас должен получится следующий код:
using System ;
using System . Collections . Generic ;
using System . Linq ;
using System . Text ;
using System . Threading . Tasks ;
using System . IO ;
namespace StreamReaderDemo
class Program
static void Main ( string [ ] args )
StreamReader sr = new StreamReader ( «textfile.txt» ) ;
while ( sr . EndOfStream ! = true )
s = sr . ReadLine ( ) ;
Console . WriteLine ( s ) ;
Давайте протестируем написанную программу. Для этого запустим её. Нажмём в Visual Studio сочетание клавиш Ctrl + F5 (чтобы консоль не закрылась сразу после выполнения программы).
Как вы видите текст из файла успешно вывелся на экран компьютера в консоль.
Если вы хотите скачать исходник программы, написанной в этом уроке, то нажмите на кнопку ниже.
Источник: vscode.ru
Запись и чтение файлов в PHP
Примеры сохранения и чтения текстовых данных и массивов в файлы.
Бат файлы: основные команды, примеры
Сохранение в файл
Функция file_put_contents() записывает содержимое переменной в файл, если файла не существует. то пытается его создать, если существует то полностью перезапишет его.
File_put_contents:
$text = ‘Lorem ipsum dolor sit amet, consectetur adipiscing elit.’; $filename = __DIR__ . ‘/file.txt’; file_put_contents($filename, $text);
Fopen / fwrite:
Набор функций fopen, fwrite, fclose предназначены для более гибкой работы с файлами.
- fopen – открытие или создание файла.
- fwrite – запись данных.
- fclose – закрытие файла.
$text = ‘Lorem ipsum dolor sit amet, consectetur adipiscing elit.’; $filename = __DIR__ . ‘/file.txt’; $fh = fopen($filename, ‘w’); fwrite($fh, $text); fclose($fh);
Возможные режимы fopen():
r | Открывает файл только для чтения, помещает указатель в начало файла. |
r+ | Открывает файл для чтения и записи, помещает указатель в начало файла. |
w | Открывает файл только для записи, помещает указатель в начало файла и обрезает файл до нулевой длины. Если файл не существует – пробует его создать. |
w+ | Открывает файл для чтения и записи, помещает указатель в начало файла и обрезает файл до нулевой длины. Если файл не существует – пытается его создать. |
a | Открывает файл только для записи, помещает указатель в конец файла. Если файл не существует – пытается его создать. |
a+ | Открывает файл для чтения и записи, помещает указатель в конец файла. Если файл не существует – пытается его создать. |
x | Создаёт и открывает только для записи; помещает указатель в начало файла. Если файл уже существует, вызов fopen() закончится неудачей, вернёт false и выдаст ошибку. Если файл не существует, попытается его создать. |
x+ | Создаёт и открывает для чтения и записи, в остальном имеет то же поведение, что и « x ». |
c | Открывает файл только для записи. Если файл не существует, то он создаётся. Если же файл существует, то он не обрезается (в отличие от « w »), и вызов к этой функции не вызывает ошибку (также как и в случае с « x »). Указатель на файл будет установлен на начало файла. |
c+ | Открывает файл для чтения и записи, в остальном имеет то же поведение, что и « c ». |
Доступно в место fwrite() используют fputs() , разницы ни какой т.к. эта функция является псевдонимом.
Дописать строку в начало файла
$new_str = ‘New line of text.’; $filename = __DIR__ . ‘/file.txt’; $text = file_get_contents($filename); file_put_contents($filename, $new_str . PHP_EOL . $text);
Дописать строку в конец файла
$new_str = ‘New line of text.’; $filename = __DIR__ . ‘/file.txt’; file_put_contents($filename, PHP_EOL . $new_str, FILE_APPEND);
Или fopen с флагом « c »:
$new_str = ‘New line of text.’; $filename = __DIR__ . ‘/file.txt’; $fh = fopen($filename, ‘c’); fseek($fh, 0, SEEK_END); fwrite($fh, PHP_EOL . $new_str); fclose($fh);
Чтение из файла
Чтение всего файла
$filename = __DIR__ . ‘/file.txt’; $text = file_get_contents($filename); echo $text;
$filename = __DIR__ . ‘/file.txt’; $text = »; $fh = fopen($filename, ‘r’); while (!feof($fh)) < $line = fgets($fh); $text .= $line . PHP_EOL; >fclose($fh); echo $text;
Чтение файла в массив
Функция file() – читает содержимое файла и помещает его в массив, доступны опции:
- FILE_IGNORE_NEW_LINES – пропускать новую строку в конце каждого элемента массива.
- FILE_SKIP_EMPTY_LINES – пропускать пустые строки.
$filename = __DIR__ . ‘/file.txt’; $array = file($filename); print_r($array);
Чтение файла сразу в браузер
$filename = __DIR__ . ‘/file.txt’; readfile($filename);
Получить первую строку из файла
$filename = __DIR__ . ‘/file.txt’; $fh = fopen($filename, ‘r’); echo fgets($fh); fclose($fh); /* или */ $filename = __DIR__ . ‘/file.txt’; $array = file($filename); echo $array[0];
Первые три строки из файла:
$filename = __DIR__ . ‘/file.txt’; $array = file($filename); $first_3 = array_slice($array, 0, 3); print_r($first_3);
Получить последнюю строку из файла
$filename = __DIR__ . ‘/file.txt’; $array = file($filename); $last = array_slice($array, -1); echo $last[0];
Последние три строки из файла:
$filename = __DIR__ . ‘/file.txt’; $array = file($filename); $last_3 = array_slice($array, -3); print_r($last_3);
Запись и чтение массивов в файл
Serialize
Не очень удачное хранение данных в сериализованном виде т.к. изменение одного символа может привести к ошибке чтения всех данных в файле. Подробнее в статье «Функция serialize, возможные проблемы»
Запись:
$array = array(‘foo’, ‘bar’, ‘hallo’, ‘world’); $text = base64_encode(serialize($array)); file_put_contents(__DIR__ . ‘/array.txt’, $text);
Чтение:
$array = unserialize(base64_decode($text)); print_r($array);
JSON
Запись:
$array = array(‘foo’, ‘bar’, ‘hallo’, ‘world’); $json = json_encode($array, JSON_UNESCAPED_UNICODE); file_put_contents(__DIR__ . ‘/array.json’, $json);
Чтение:
$json = file_get_contents(__DIR__ . ‘/array.json’); $array = json_decode($json, true); print_r($array);
Источник: snipp.ru
Составляем идеальный файл README
Перевод статьи «How to write a kickass README».
Вероятно, README это самая простая часть документации любого проекта с открытым исходным кодом. Хороший README сообщает людям не только о том, что делает проект и для кого он предназначен, но и о том, как именно нужно использовать проект и как принять участие в его разработке.
Если не уделить должного внимания составлению хорошего README, где объяснялось бы, как пользоваться проектом и для чего он вообще создан, такой проект не оправдает себя в качестве именно open source проекта, поскольку другие разработчики с меньшей вероятностью станут в нем участвовать.
Что такое README?
По сути, README это просто текстовый файл (в формате .txt или .md), играющий роль быстрой справки по проекту или директории. Обычно это самая заметная часть документации и landing page для большинства проектов с открытым кодом. Даже само название файла пишется одними заглавными буквами, чтобы привлечь внимание читателя и побудить его прочесть это файл в первую очередь.
Доказано, что файлы README появились уже в 1970-е. Самый старый найденный мной экземпляр README датируется 27 ноября 1974 года (создан для DEC компьютера PDP-10). Есть много версий, почему файл первичной документации принято называть именно README, но основных среди них две:
- Программисты мэйнфреймвов, работавшие с перфокартами, оставляли стопку инструкций (в бумажном виде) на передней панели и помечали их надписью «READ ME!» («Прочти меня!»).
- Название является отсылкой к «Алисе в стране чудес» Льюиса Кэрролла. Там Алиса находит пузырек с надписью «DRINK ME» («Выпей меня») и пирожное с надписью «EAT ME» («Съешь меня»). И то, и другое, позволяет ей меняться в размерах.
Что нужно включить в файл README?
Так что же должен содержать идеальный файл README? В качестве отправной точки я рекомендую воспользоваться следующим списком:
1. Название продукта
Не забудьте дать своему проекту имя. На GitHub просто на удивление много безымянных проектов.
2. Введение или краткое описание
Напишите две-три короткие строчки, поясняющие, что делает ваш проект и для кого он предназначен. Не вставляйте заголовки типа «Вступление», «Обзор» и т. п. — и так очевидно, что это введение.
3. Необходимые условия для использования продукта
Сразу после введения добавьте раздел, где будут перечислены все знания и инструменты, необходимые тому, кто пожелает воспользоваться вашим проектом. Например, если продукт запускается на последней версии Python, напишите, что нужно установить Python.
4. Как установить программу
Опишите шаги инсталляции! Просто поразительно, сколько есть проектов, где описано, как использовать продукт, но нет ни слова о том, как его установить. Вероятно, ожидается, что читатель волшебным образом сам догадается. Если процесс установки достаточно длинный (сложный), обязательно разбейте его на отдельные этапы и пронумеруйте их.
5. Порядок использования
Опишите, как пользователь может использовать ваш проект после установки. Обязательно включите примеры использования, ссылки на пояснение опций команд или флагов (если считаете, что это будет полезно). Если у вас есть более подробная документация в отдельном файле или на сайте, поставьте ссылку на нее.
6. Как принять участие в проекте
Опишите шаги, которые должен пройти потенциальный контрибьютор. Возможно, вы могли бы создать руководство в отдельном файле и поместить ссылку на него в README. Укажите в руководстве все, что вы хотите, чтобы люди знали, прежде чем отправлять пул-реквесты.
7. Добавьте список контрибьюторов
Укажите всех людей, которые участвовали в создании этого проекта. Это хороший способ сделать так, чтобы open source казался плодом командных усилий. Также таким образом вы поблагодарите всех людей, потративших время на участие в вашем проекте.
8. Добавьте раздел с благодарностями
Также, если вы использовали чью-то еще работу (код, дизайн, изображения и т. п.) и копирайт обязывает вас указать автора, вы можете сделать это , добавив специальный раздел. Тут можно поблагодарить и других разработчиков или даже целые организации, оказавшие помощь проекту.
9. Контактная информация
Возможно, вы замкнутый человек, избегающий любой публичности, и совершенно не хотите рассекречивать свои контакты. Но лучше все же их добавить где-нибудь на видном месте — на случай, если у людей возникнут вопросы по продукту, если кто-то захочет принять участие в разработке или — чем черт не шутит! — если кто-то так восхитится вашим проектом, что захочет предложить вам работу.
10. Информация о лицензии
Информацию о лицензии продукта определенно стоит включить в файл README. Стартапы и прочие компании, использующие стороннее ПО, не смогут использовать ваш продукт, если не будут знать, на каких условиях могут это делать. Посмотреть список видов лицензий можно на choosealicense.com или opensource.org.
Добавьте немного блеска
Если хотите, чтобы ваш README выделялся и имел привлекательный вид —
- Добавьте логотип. Если у вашего проекта есть лого, разместите его в верхней части README. Благодаря брендингу проект выглядит более профессиональным, кроме того, это помогает людям его запомнить.
- Добавьте значки или плашки. Они помогут вам быстро показать посетителям текущий статус проекта, лицензию, обновление зависимостей. Плюс, они просто круто выглядят! Можно воспользоваться готовыми значками или создать собственные на Shields.io.
- Добавьте скриншоты. Иногда простой скриншот или серия скриншотов бывают полезнее тысячи слов. Но будьте внимательны! Если вы используете скриншоты, следите за их актуальностью и обновляйте по мере обновления проекта.
- Используйте эмодзи(?). Сегодня во многих проектах используются эмодзи, но, конечно, только от вас зависит, хотите ли вы тоже их использовать. Это может быть хорошим способом добавить немного цвета и юмора в ваш README и слегка «очеловечить» проект.
Ресурсы
Если хотите узнать еще что-то о написании README, я советую воспользоваться следующими источниками:
- Выступление Дэниела Бека «Write the Readable».
- Выступление Лорны Джейн Митчелл «Github as a landing page».
- README generator Франгка Абгралла.
Источник: techrocks.ru