50194

Работа с текстовыми файлами

Лабораторная работа

Информатика, кибернетика и программирование

Цель: Приобрести практические навыки в проектировании структуры файла а также закрепить навыки по вводу данных в текстовый файл и их обработке. Этим звеном является файловая структура. Ввод и вывод информации в файл обеспечивается с помощью так называемого указателя на файл который является указателем на файловую структуру в памяти.

Русский

2014-01-17

55.5 KB

3 чел.

Лабораторная Работа № 18

Тема: Работа с текстовыми файлами.

Цель: Приобрести практические навыки в проектировании структуры файла, а также закрепить навыки по вводу данных в текстовый файл и их обработке.

Теоретические сведения:

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

Для того чтобы направить данные в буфер или получить их из буфера, необходимо некоторое связующее звено между вашей программой и операционной системой компьютера. Этим звеном является файловая структура.

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

FILE *file_pointer;

Для использования файловой структуры и функций по операциям с файлами необходимо подключить stdio.h.

Связь между программой и файлом устанавливается при помощи функции fopen() следующим образом:

pointer=fopen(“FILENAME”,”mode”);

где  pointer – указатель на файл;

      fopen – имя функции;

      FILENAME – имя файла на диске;

      mode – режим доступа к файлу.

В файле stdio.h определены следующие функции (смотри таблицу 1):

Таблица 1.

Функции

Действие функции

fopen()

fclose()

putc() или fputc()

getc() или fgetc()

fputs()

fgets()

fseek()

fprintf()

fscanf()

feof()

ferror()

rewind()

remow()

Открыть файл

Закрыть файл

Записать символ в поток

Прочитать символ из потока

Построчная запись в поток

Построчное чтение данных из потока

Изменить указатель позиции файла на указанное место

Форматная запись в файл

Форматное чтение из файла

Возвращает значение «истинно», если достигнут конец файла

Возвращает значение «ложно», если обнаружена ошибка

Устанавливает указатель позиции файла на начало

Уничтожает файл

Возможные режимы открытия файлов перечислены ниже (смотри таблицу 2):

Таблица 2.

 

Режим

Действие

“r”

“w”

“a”

“rt”

“wt”

“at”

“r+t”

“w+t”

“a+t”

Открыть для чтения

Создать для записи

Открыть для добавления в существующий файл

Открыть текстовый файл для чтения

Создать текстовый файл для записи

Открыть текстовый файл для добавления

Открыть текстовый файл для чтения и записи

Создать текстовый файл для чтения и записи

Открыть текстовый файл для добавления или создать для чтения и записи

Посимвольная передача данных является самой основной формой файловых операций, хотя и не принадлежит к числу широко распространенных на практике способов обращения с информацией.

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

Пример: Посимвольная запись  и чтение данных в файл и из файла.

#include<stdio.h>

void main()

{

FILE *fp;

char letter;

if((fp = fopen(“myfile”,”w”))==NULL)

    { puts(“Невозможно открыть файл”);

       exit();

     }

// Чтение символа с клавиатуры и запись в файл

do 

     {letter=getchar(); // ввод последовательности символов

      fputc(letter,fp); // символы записываются в файл

      }

while(letter !=’\r’);

fclose(fp);

// Чтение данных из файла и вывод их на экран

if((fp = fopen(“myfile”,”к”))==NULL)

    { puts(“Невозможно открыть файл”);

       exit();

     }

while((letter =fgetc(fp))!= EOF) //  посимвольное чтение из файла

     printf(“%c”,letter);

fclose(fp);

}

Задание:  Выполнить программу обработки символьных данных в соответствии с вариантом, указанном в таблице 3.

Вариант

Условия задачи

1

Проверить, имеются ли в заданном тексте баланс открывающих и закрывающих скобок.

2

Для встречающихся в заданном тексте пар рядом расположенных символов указать, сколько раз встречается каждое из таких двухбуквенных сочетаний.

3

Отредактировать предложение, удаляя из него лишние пробелы, оставляя только по одному пробелу между словами.

4

В заданном предложении указать слово, в котором доля гласных (A, E,O,I) максимальна.

5

Для каждого слова заданного предложения указать долю согласных. Определить слово, в котором доля согласных максимальна.

6

Найти самое длинное симметричное слово заданного предложения, например АККА.

7

Для каждого символа заданного текста указать, сколько раз он встречается в тексте. Сообщение об одном символе должно печататься не более одного раза.

8

Отредактировать заданное предложение, заменяя многоточия точкой.

9

В заданном предложении найти самое короткое и самое длинное слово.

10

Из заданного текста выбрать и напечатать только те символы, которые встречаются в нем только один раз (в том порядке, в котором они встречаются в тексте).

11

В заданном тексте заменить последовательность символов X(I) на A(I) и подсчитать число произведенных замен.

12

В заданном тексте удалить символ «,» и подсчитать число удаленных символов.

13

Из текста выбрать числа и записать в массив N. Количество чисел не более 10.

14

Удалить из текста символы «пробел» и подсчитать длину сформированного текста.

15

В тексте предложения заменить символ «пробел» на символ «,». Конечные символы удалить, не заменяя на запятые. Определить длину предложения. Если в тексте встречается несколько символов «пробел» подряд, то вместо них поставить одну запятую.

Контрольные вопросы:

  1.  Что такое файловый буфер?
  2.  Чем отличается файл от массива?
  3.  Как используется файловая структура?
  4.  Как вы будете выводить числовые данные?
  5.  Как осуществляется чтение и запись файла?
  6.  Назовите режимы работы с файлами.
  7.  Для чего служит функция sizeof()?

Содержание отчета:

  1.  Краткие теоретические сведения.
  2.  Схемы алгоритмов.
  3.  Тексты составленных программ.
  4.  Протоколы к составленным программам.
  5.  Вывод о проделанной работе.


 

А также другие работы, которые могут Вас заинтересовать

40507. Социально-бытовые, сатирические сказки 27.5 KB
  Два типа социальнобытовых сказок: в центре – герой умный хитрый ловкий мужик. Мужик и барин Мужик и поп Мужик и богач семейный характер конфликты внутри семьи. Мужик и жена. Их герои мужик солдат работник и т.
40508. Специфика фольклора 34.5 KB
  широких народных масс = коллективное творчество устное художественное творчество может рассматриваться: с точки зрения этнографии все проявления отдельно словесное творчество с точки зрения этнологии все проявления вместе Фольклор обладает свойствами качествами которых больше нигде нет которые в совокупности дают специфику фольклора: 1 Устность. Аргументы: исторические потому что раньше письменности социальные крестьяне неграмотные коммуникационная ситуативное внутренней стороны устности: устность может...
40509. Фольклористика XVIII века 23 KB
  Параллельно с этим шла публикация того что было собрано: Чулков Собрание разных русских песен 1776 Лёвшин Русские сказки 1780 Львов Собрание русских народных сказок с их голосами 1790 Но в этих сборниках было мало собственно русского фольклора: не выработали принципы по которым отбирать произведения для публикации конъюнктура Появление имперского сознания повлекло за собой стремление понастоящему узнать самое себя свою сущность. Итог: сборник Кирши Данилова Древние российские стихотворения 1804 в котором...
40510. Школа заимствования в русской фольклористике 20 KB
  Принципы Произведения одни и те же у разных народов. Причины сходства: одна прародина всех народов и всех фольклорных текстов обмен фольклорными богатствами в результате контакта между народами Недостатки Народы только и делают что заимствуют друг у друга фольклор = у народов нет своих национальных корней но это преувеличение.
40511. Радищев и фольклор 20.5 KB
  Радищев и фольклор. Концепция Радищева – вершина русской фольклористики XVIII века. Радищев как и многие другие интересуется фольклором. Фольклор выражает идеологию и психологию коллективное бессознательное народа.
40512. Анализ волшебно-сказочного сюжета по выбору студента 36.5 KB
  Фундаментальная оппозиция свой чужой определяет как известно всю поэтику и проблематику волшебной сказки. При этом оппозиция братьев осложняется тем что Иван–царевич в первой части сказки по терминологии В. В результате возникает как уже отмечалось подробно разработанная на разных уровнях система отражающая все важные для фольклорной сказки аспекты природный природносоциальный семейнородственный и родственный в смысле учения Н. Противоречие между метафизическим и бытовым уровнями мировосприятия отличающимися друг от друга как...
40513. Былины Киевского цикла 20 KB
  Три типа персонажей: князь Владимир богатыри враги Князь Владимир – центральный персонаж но богатырь – главный герой.
40515. Былички 21.5 KB
  Былички. Былички – истории о покойниках леших домовых – память о древнеславянской мифологии. Былички – мифологические рассказы о духах природы и домашнего очага. По композиции былички: мемораты – воспоминания о встрече; фабулаты – есть сюжет повествование.