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


 

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

10872. Виконання та захист графічних робіт. Виконання технічних рисунків та ескізів кількох заданих деталей 27 KB
  Тема 13: Виконання та захист графічних робіт. Виконання технічних рисунків та ескізів кількох заданих деталей. Мета: Навчальна: сформувати знання вміння та навички поданій темі. Виховна: виховувати в учнів культуру праці та акуратність. Розвиваюча: розвивати у шк
10875. Фанера та ДВП в конструюванні обєктів технологічної діяльності 17.94 KB
  Привітання з класом. Концентрація уваги учнів та перевірка їх наявності. Організація та перевірка готовності учнів до роботи, наявності спецодягу, створення позитивної емоційної атмосфери, призначення чергових, перевірка присутності учнів.
10876. ДВП та фанера, їх використання в конструюванні обєктів технологічної діяльності 74.5 KB
  Тема. Фанера та ДВП в конструюванні об’єктів технологічної діяльності. Мета: ознайомити учнів з різними видами конструкційних матеріалів видами та породами дерев особливостями їх будови характерними ознаками способами заготівлі та одержання пиломатеріалів знач
10877. Електромонтажі інструменти 157.5 KB
  Тема. Електромонтажі інструменти. Мета: сформувати в учнів поняття про розвивати політехнічний світогляд виховувати відповідальність за результат роботи. Ключові поняття: електрична схема умовне позначення електричний патрон вилка штепсельна штепсельна
10878. Призначення та будова вимірювальних та розмічальних інструментів 36.5 KB
  Тема Призначення та будова вимірювальних та розмічальних інструментів. Мета: навчальна: сформувати уявлення про призначення та будову вимірювальних інструментів. Прийоми розмічання за шаблоном. Відомості про припуски на обробку. Виховна: виховувати старанність і
10879. Оздоблення виготовлених виробів. Випалювання на деревині. Лакування (фарбування) виробу Практична робота 65.5 KB
  Тема уроку: Оздоблення виготовлених виробів. Випалювання на деревині. Лакування фарбування виробу Практична робота. Мета уроку. Засвоєння знань про види оздоблення виробів з фанери принцип дії приладу для випалювання на деревині; формування прийомів випалювання на ...
10880. Знаряддя праці для ручної обробки метеріалів різанням 73.5 KB
  Знаряддя праці для ручної обробки метеріалів різанням. Технологічний процес пиляння. Мета: сформувати в учнів поняття про процес різання та уявлення про технологію пиляння фанери і ДВП; розвивати політехнічне мислення; виховувати культуру праці. Ключові поняття: р