Зайцев М. Г. / 8
.docxМИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИИ
Новосибирский государственный технический университет
ЛАБОРАТОРНАЯ РАБОТА № 8
по курсу «Информатика и программирование»
«Комбинированные типы»
Факультет бизнеса
Группа: ФБИ-11
Студенты: Рыбаченко А.А.
Преподаватель: Зайцев М.Г.
Новосибирск
2012г.
Практическая работа. Текстовый файл
Цель: Сформировать практические навыки обработки данных хранящихся в файлах на внешних запоминающих устройствах с помощью средств Object Pascal.
Задание
-
Просмотреть коды символов, записанных в текстовый файл.
Рекомендации к выполнению: Создайте новое консольное приложение и сохраните его в отдельной папке под именем PTextFile1. Создайте текстовый файл в редакторе Delphi с помощью команды File|New|Other|Text. Введите с клавиатуры в него первые семь строк из представленных ниже:
Сохраните файл в той же папке, где хранится ваше приложение под именем File1.txt. Закройте в редакторе страницу с файлом с помощью правой кнопки мыши. В вашем приложении откройте этот файл как текстовый и выведите его содержимое на экран. Затем откройте его же, как файл типизированный file of byte. Выведите его содержимое, так как показано на рисунке выше. Проанализируйте результат. Затем откройте его же, как файл типизированный file of char. Выведите его содержимое, чтобы оно совпадало с тем, что показано на рисунке выше. Проанализируйте результат.
-
Посчитать количество вхождений заданной строки в файл. Рекомендации к выполнению: для подсчёта возьмите файл проекта вашего приложения (файл с расширением dpr). Для подсчёта числа вхождений напишите функцию. Перед подсчётом числа вхождений выведите содержимое файла на экран для тестирования работы программы.
-
Удалить все вхождения заданной строки в файл.
Текст работы:
program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils;
const n = 5;
type
fileint = file of integer;
function MinInFile(var f:fileint; var pos:integer):integer;
var min:integer;
begin
reset(f);
pos:=1;
if filesize(f) = 0
then
result:=0
else
begin
read(f,result);reset(f);
while eof(f) <> true do
begin
read(f,min);
if result>min
then
begin
pos:=filepos(f);
result:=min;
end;
end;
end;
end;
procedure FindAndChangeFile( var f:fileint; var a,b:integer);
var p:integer;
begin
reset(f);
while eof(f) <> true do
begin
read(f,p);
if p=a then
begin
seek(f,filepos(f)-1);
write(f,b);
end;
end;
end;
// Нужно будет отсиртировать с помощь процедур swar и min
var f:fileint; i,v,pos,a,b:integer;
begin
AssignFile(f,'MyDat.txt');
rewrite(f);
for i:=1 to n do
begin
write('Integer: ');
read(v);
write(f,v);
end;
reset(f);
while eof(f) <> true do
begin
read(f,v);
writeln('New Integer: ',v);
end;
writeln('Minimanlnoe ', MinInFile(f,pos),' v pozicii ', pos);
Write('Vvedite a = '); readln(a);
write('Vvedite b = '); read(b);
FindAndChangeFile(f,a,b);
reset(f);
while eof(f) <> true do
begin
read(f,v);
writeln('New New Integer: ',v);
end;
readln; readln;
end.