Чтение из файла
/* Программа: Чтение файла */
/* Назначение: Чтение данных из файла и вывод их */
/* на экран и принтер. */
domains
file = datafile
predicates
write_message_l
check_for_ready
process_file process
input_output write_message_2
read_and_print
create_output_from_a_file
goal
create_output_from_a_file.
clauses
create_putput_from_a_file : -
write_message_l,
process_file,
write_message_2.
process_fi1e :-
check_for_ready,
process_input_output.
write_message_l :-
nl,nl,write("HELLO"),nl,nl,
write("This program reads and writes "),
nl,
write("data from a data file."),
nl,nl.
check_for_ready :-
write("PLEASE PRESS SPACE BAR WHEN"),
nl,
write(" YOU ARE READY TO BEGIN."),
nl,nl,
readdevice(keyboard),
readchar(_).
process_input_output :-
write("Please enter complete filename."),
nl,
write(" Then press the return key."),nl,
write("The format of the file name is"),
nl,
write(" <file name>.<extension>."),
nl,nl,
readln(Filename),
nl,
openread(datafile,Filename),
readdevice(datafile),
read_and_print,
closefile(datafile).
write_message_2 :-
writedevice(screen),
nl,nl,
write("Printing of data from the file."),
nl,
write("has been completed."),nl,nl,
write(" Good bye !"),nl.
read_and_print :-
not(eof(datafile)).
readchar(Y),
write(Y),
writedevice(printer),
write(Y),
flush(printer),
writedevice(screen),
read_and_print.
read and_print :-
nl,nl,
write("Please press the space bar"),
readdevice(keyboard),
readchar(_).
/***** конец программы *****/
Практическое задание
Выполнить задание по индивидуальному номеру варианта, полученного у преподавателя.
Создать программу, которая позволила бы вводить с клавиатуры в файл любимое стихотворение пользователя. Обеспечить возможность прочтения стихотворения и его удаления. Файл сохранять с именем, введенным пользователем.
Написать программу, формирующую файл с именем, задаваемым пользователем. Указанный файл должен содержать введенный пользователем с клавиатуры текст с учетом абзацев(абзац считать одной строкой). Пользователь должен иметь возможность прочитать весь файл, удалить из него весь текст, набрать текст заново.
Предоставьте возможность пользователю создать свой файл, в котором хранится информация, являющаяся для него конфиденциальной. Только один пользователь должен иметь доступ к этому файлу для его чтения, уничтожения и перезаписи.
Написать программу, которая вводимые пользователем с клавиатуры буквы распределяет соответственно в два файла: гласных и согласных букв. Остановкой ввода должен служить любой символ, отличный от буквы. Пользователь должен иметь возможность просмотра созданных файлов.
Создать программу, которая проводит следующие действия: а) введённую пользователем маленькую букву преобразует в большую; б) записывает полученные буквы в соответствующие файлы больших и маленьких букв. Остановкой записи считать любой символ, отличный от букв. Пользователь должен иметь возможность просмотреть содержимое полученных файлов.
Написать программу, которая запрашивает у пользователя имя файла для последующего сохранения в нем введенной с клавиатуры информации. Информация представляет собой следующий вид: последовательность вводимых символов будет одной строкой, если содержит только буквы или только цифры, т.е. после ввода букв сигналом начала новой строки является введенная цифра и наоборот. Обеспечит возможность просмотра содержимого файла и его удаления.
Написать программу, которая позволила бы вводить с клавиатуры в файл с указанным пользователем именем стихотворение. Кроме того, обеспечить возможность 1) сохранения существующего файла в файле с другим именем; 2) доступа к любому из полученных файлов с целью их просмотра или удаления.
Создать программу, которая сохраняет вводимую с клавиатуры информацию в файле с заданным именем следующим образом: каждое введенное пользователем слово сохраняется как отдельная строка. Сигналом окончания строки, очевидно, является нажатие пробела, а окончания ввода – ENTER. Обеспечить возможность просмотра файла целиком и его удаления.
Написать программу, позволяющую производить следующие манипуляции: 1) создавать файл с именем, указанным пользователем; 2) сохранять в этом файле (с дублированием для большей сохранности еще в одном файле) информацию, вводимую с клавиатуры согласно следующему принципу: сохранять в виде отдельной строки каждую запись, оканчивающуюся нажатием клавиши ENTER, окончанием ввода считать слово “end!”; 3) открыть созданный файл для чтения; 4) удалить файл (дополнительный файл удалить лишь после повторного подтверждения соответствующего запроса).
Написать программу, которая выполняет следующие функции: 1) создает файл с именем, указанным пользователем; 2) в этот файл заносит информацию о студентах вашей группы следующим образом: student(“Иванов”, “Иван”, “Иванович”, “1983”) (как одну строку) (пользователь естественно должен вводить только ФИО и год рождения, но вид строк в файле должен быть таким, как в примере); 3) просматривает файл в целом; 4) удаляет файл.
Написать программу, выполняющую следующие операции: 1) открывает любой файл с диска (использовать предикат dir); 2) выводит содержимое файла на экран; 3) перезаписывает файл, вводя информацию пользователя (перезапись осуществлять после дополнительного запроса); 4) дописывает информацию в файл; 5) удаляет выбранный файл.
Написать программу, выполняющую следующие действия: 1) вводимые пользователем символы сохраняет соответственно в файле русских и латинских букв; 2) предоставляет возможность просмотра указанных файлов; 3) удаляет файлы с диска после запроса у пользователя подтверждения о завершении работы с программой.
Написать программу, выполняющую следующие действия: 1) создает на диске три файла с именами, указанными пользователем; 2) файлы пополняются информацией следующим образом: первая строка сохраняется в первом файле, вторая – во втором; третья – в третьем, четвертая – в первом и т.д.; 3) просматривает файлы; 4) удаляет файлы после повторного запроса об их удалении.
Написать программу, которая распределяет вводимые пользователем числа следующим образом: четные числа в файл «chet.dat», нечетные – «nechet.dat». Каждое введенное число считать отдельной строкой. Обеспечить возможность просмотра указанных файлов и их последующей очистки.
Создать программу, которая формирует файлы следующего типа: первый файл содержит ФИО людей в виде отдельных строк; второй файл – соответствующие года рождения (тоже отдельными строками). Информация в каждом файле пополняется вводом с клавиатуры. Затем получить третий файл, который содержит в качестве отдельной строки уже объединение соответствующих строк из первого и второго файлов. Все файлы должны быть доступны к их полному просмотру и удаляться после завершения работы программы.
Написать программу, которая выполняет следующие операции: 1) создает файл с указанным пользователем именем; 2) заполняет файл строками, которые вводятся с клавиатуры (конец строки совпадает с нажатием enter); 3) просматривает файл полностью; 4) дозаписывает в файл новые строки; 5) удаляет файл после завершения работы программы.