Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

If (not d) and d1 then

{Вывод повторяющейся строки, отличной от строки пробелов}

begin if c=0 then writeln('Повторяющиеся строки:');

writeln(del_s);inc(c);

end;

d:=true;

until eof(f) {конец основного цикла};

close(outf); if c=0 then writeln('Повторяющихся строк нет')

else writeln('Всего ',c,' повторяющихся строк');

END {clean_file}.

Заметим, что эта задача может быть решена более просто, если предварительно отсортировать файл, например, по возрастанию записей (в лексикографическом порядке строк).

 

6. Поиск и выборка данных из файлов.

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

program search;

{ Выборка из файла данных о группе студентов}

uses CRT;

type stud = record num:byte;name: string [20];average:real end;

gr_st= file of stud{данные о группе студентов};

var gr:gr_st{группа студентов};

st:stud{запись о студенте};

nm: string {имя исходного файла};

avr: string {условие для average};

sgn: string [1]{знак в условии};ball:real{запрошенный балл};

pr:boolean{признак выбранной записи};k:integer{кол-во выборок};

er:integer{ошибка преобразования в число};

BEGIN clrscr; repeat {открытие файла на чтение}

write('Введите имя файла:'); readln(nm);

if nm='' then halt;assign(gr,nm);

{$I-} reset(gr);{$I+} if IOResult<>0 then nm:='';

until nm<>''; {анализ запроса }

repeat write('Введите запрос для среднего балла: ');readln(avr);

sgn:=copy(avr,1,1);avr:=copy(avr,2,length(avr)-1);

val(avr,ball,er); if er<>0 then ball:=0;

until (ball>=2) and (ball<=5); k:=0; writeln('Запрошенные данные:');

repeat {реализация запроса к файлу nm}

read(gr,st); with st do

begin if sgn='>' then pr:=average>ball else pr:=average<=ball;

if pr then begin writeln(name,average:1:2);inc(k);delay(1000) end

end until eof(gr); if k<>0 then writeln('Всего студентов: ',k)

else writeln('Пустая выборка');readkey

END {search}.

 

7. Печать текстовых файлов.

Вывод файла на печать - один из завершающих этапов обработки данных, предоставляющий информацию пользователям в удобной форме. Форматирование выводимых данных - важнейшая особенность программ печати. Большие возможности по форматированию документальной информации предоставляют текстовые редакторы, системы управления базами данных, генераторы отчётов. Для того чтобы продемонстрировать возможности форматирования данных средствами Турбо Паскаля приведем простую программу постраничной печати текстового файла в двух вариантах:

program print_text; {Печать текстового файла}

uses Printer;

var f:text; {Исходный файл}

c:char;s,nm: string;

j,p:word;

const bel=#7;FF=#12;

BEGIN writeln('ПЕЧАТЬ ТЕКСТА ');writeln;write('Имя файла:');readln(nm);

if nm<>'' then

begin {открытие f с контролем существования файла}

assign(f,nm);{$I-} reset(f);{$I+}

if IOResult<>0 then begin writeln('Ошибка');halt end {конец открытия f};

j:=1;p:=1; repeat {цикл печати} if j mod 50=0 then

begin writeln(LST,FF);writeln(bel,'Конец страницы ',p:3);

writeln('Печатать следующую страницу(Y/N)?',bel);

readln(c); if upcase(c)<>'Y' then

begin close(f);halt end;p:=p+1;

for j:=1 to 35 do

write(LST,' ');writeln(LST,'-',p,'-');j:=1

end;readln(f,s);writeln(LST,s);inc(j);

until eof(f) {конец цикла печати};writeln(LST,FF);close(f)

<== предыдущая лекция | следующая лекция ==>
Implementation. procedure sort_file(var f:text;r:Boolean); | Введение. {Вариант программы print_text с выводом LST на экран}
Поделиться с друзьями:


Дата добавления: 2014-01-04; Просмотров: 159; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.