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.  Вывод о проделанной работе.


 

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

1651. Способы определения концентрации спермиев в эякуляте: подсчет в счетной камере при помощи ФЭК по стандартам 20.59 KB
  Концентрацию спермиев определяют с помощью фотоэлектроколориметров (ФЭК), калибровочную кривую для которых составляют по результатам подсчета спермиев в камере Горяева.
1652. Способы искусственного осеменения кобыл 20.49 KB
  При осеменении кобыл сперму вводят в матку (маточный метод осеменения). В практике применяют два способа введения спермы: мануальный и визуальный.
1653. Способы искусственного осеменения коров и телок 20.59 KB
  Для осеменения коров и телок используется цервикальный метод осеменения, т. е. в шейку матки. Существуют три принципиально различающихся по технике исполнения способа введения спермы в цервикальный канал.
1654. Способы искусственного осеменения свиноматок 20.5 KB
  При искусственном осеменении свиней сперма вводится в матку. В практике применяется два способа осеменения: фракционный и нефракционный.
1655. Способы получения спермы от производителей, их преимущества и недостатки 20.33 KB
  Получать сперму от самцов для использования и искусственного осеменения самок можно уретральным и вагинальным методами.
1656. Способы хранения спермы быка 21.29 KB
  Способы хранения спермы вне организма основаны на физиологических свойствах спермиев переходить в состояние анабиоза. Кратковременное хранение спермы и хранение в полном анабиозе.
1657. Сроки наступления половой зрелости у различных видов самок и самцов. 20.73 KB
  Половая зрелость - способность животных производить потомство. Она характеризуется образованием яйцеклетки и проявлением половых циклов у самок, выделением спермиев у самцов, выработкой половых гормонов, обуславливающих развитие вторичных признаков.
1658. Стадии родов: подготовительная, выведения плода, последовая 20.49 KB
  Роды - это сложный физиологический процесс, заключается в выведении зрелого жизнеспособного плода и его плодных оболочек из полости матки через родовые пути.
1659. Сущность искусственного осеменения и его значения в животноводстве 20.44 KB
  И.И. Иванов - основоположник методов искусственного осеменения с/х животных. Самое крупное открытие в области животноводства после приручения и одомашнивания животных.