Форум программистов, компьютерный форум, киберфорум
Free Pascal
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 17.03.2018
Сообщений: 10
1

Составьте программу, удаляющую заданный файл из текущего каталога\

28.03.2018, 14:41. Показов 1081. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Составьте программу, удаляющую заданный файл из текущего каталога.
3. Составьте программу переименовывающую заданный файл в текущем каталоге.
4. Напишите программу для удаления произвольной записи из типизированного файла.
5. Добавьте обработку ошибок в программы из листингов 2, 3, 4, а также к программе из
п. 4. задания.
6. В программе из листинга 7 добавьте обработку ошибок при вводе номера пункта
меню (т. е. проверку что ввели число). При неверном вводе пользователю должно быть
предложено повторить ввод.
7. Модифицируйте программу приведенную в листинге 7, добавив следующие функции:
• сортировку по фамилии;
• вывод на экран всех записей относящихся к заданной группе.
Приложение А – Исходный текст модуля
uStudTable
{
список студентов на основе типизированного файла
}
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
{$IFDEF FPC}
{$MODE DELPHI}
{$ENDIF}
unit uStudTable;
interface
//коды ошибок
const errNoError=0; //нет ошибок
errRecNotFound=-1; //запись не найдена
errFileError=-2; //ошибка ввода вывода
type TStudent=record
active :Boolean; //флаг удаления записей
name :string[12]; //имя
familia:string[16]; //фамилия
gruppa :Integer; //группа
end;
{открывает файл таблицы
 ВХОД
 ATableName - имя файла таблицы
 newcreate - задает поведение при отсутствии файла
True - если файл таблицы не существует, то он создается
False - если файл таблицы не существует, то он не создается
 ВЫХОД
 код ошибки}
function OpenTable(const ATableName:string;
newcreate:boolean):integer;
{закрывает файл таблицы}
procedure CloseTable;
{добавление записи в файл
 ВХОД
 R - переменная, содержащая добавляемые данные
 ВЫХОД
 код ошибки}
function AddRecord(const R:TStudent):Integer;
{чтение записи (строки) из таблицы
 ВХОД
 R - буфер, куда будут помещены прочитанные данные
 index - индекс считываемой строки
 ВЫХОД
 код ошибки}
function ReadRecord(var R:TStudent; index:Integer):Integer;
{запись строки в таблицу
 ВХОД
 R - буфер, содержащий записываемые данные
 index - индекс записываемой строки
 ВЫХОД
 код ошибки}
function WriteRecord(const R:TStudent; index:Integer):Integer;
{удаление строки из таблицы
 ВХОД
 index - индекс удаляемой записи
 ВЫХОД
 код ошибки}
function DeleteRecord(index:Integer):Integer;
{поиск записи в таблице, по столбцу "фамилия"
 ВХОД
 AValue - строка для поиска
 ВЫХОД
 индекс искомой строки (записи) таблицы или код ошибки}
function FindRecordByFamilia(const AValue:String):Integer;
{удаление всех записей из таблицы помеченных как удаленные
 ВЫХОД
 код ошибки}
function CompressTable:Integer;
{возвращает число записей (строк в таблице)
 ВЫХОД
 число записей в файле или код ошибки}
function RecordCount:Integer;
implementation
var StudList:file of TStudent; //файл таблицы
function OpenTable(const AtableName:string;
newcreate:boolean):integer;
var error:Integer;
begin
 AssignFile(StudList, ATableName);
{$I-}
 Reset(StudList);
 error:=IOResult;
if (error<>0)and(newcreate) then Rewrite(StudList);
 error:=IOResult;
{$I+}
if error<>0 then Result:=errFileError else Result:=errNoError;
end;{OpenTable}
procedure CloseTable;
begin
 CloseFile(StudList);
end;{CloseTable}
function RecordCount:Integer;
var error:Integer;
begin
{$I-}
 Result:=FileSize(StudList);
 error:=IOResult;
if error<>0 then Result:=errFileError;
{$I+}
end;{RecordCount}
//добавление записи в конец файла
function AddRecord(const R:TStudent):Integer;
begin
{$I-}
 Seek(StudList, FileSize(StudList));
 write(StudList, R);
if IOResult<>0 then Result:=errFileError else Result:=errNoError;
{$I+}
end;{AddRecord}
function ReadRecord(var R:TStudent; index:Integer):Integer;
begin
{$I-}
 Seek(StudList, index);
 read(StudList, R);
if IOResult<>0 the
end;
if error<>0 then Result:=errFileError //произошла ошибка IO
else if found then begin
 Result:=Filepos(StudList)-1; //элемент был найден (возвращаем
индекс элемента)
 if IOResult<>0 then Result:=errFileError; //произошла ошибка IO
end
else Result:=errRecNotFound; //элемент не найден
{$I+}
end;{FindRecordByFamilia}
function CompressTable:Integer;
var stride, count, i, error:integer;
buf:TStudent;
begin
 i:=0;
 stride:=0;
{$I-}
 count:=filesize(StudList);
 error:=IOResult;
while (i<count)and(error=0) do begin
 seek(StudList, i);
 read(StudList, buf);
 error:=IOResult;
 if error=0 then begin
 if buf.active then
 if stride<>0 then begin
 seek(StudList, i-stride);
 write(StudList, buf);
 error:=IOResult;
 end else
 else Inc(stride);
 inc(i);
 end;{if}
end;{while}
//определем результат завершения цикла
if error=0 then begin
 seek(StudList, count - stride);
 truncate(StudList);
 if IOResult<>0 then Result:=errFileError
 else Result:=errNoError;
end
else Result:=errFileError;
{$I+}
end;{CompressTable}
end.
Приложение Б – Блок-схема алгоритма процедуры
CompressTable
Рисунок 4 – Блок схема процедуры CompressTable
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.03.2018, 14:41
Ответы с готовыми решениями:

Создать текстовый файл p. Составьте программу, удаляющую заданное слово из текста. Результат в новый файл
Помогите пожалуйста с задачкой! Создать текстовый файл p. Составьте программу, удаляющую заданное...

Создайте текстовый файл p. Составьте программу, удаляющую заданное слово из текста.
Создайте текстовый файл p. Составьте программу, удаляющую заданное слово из текста. Помогите...

Создать в текущем каталоге заданный каталог и перенести в него из текущего каталога все текстовые файлы
Такая вот задачка. Создать командный бат-файл выполняющий следующие действия. Создать в текущем...

Копировать из текущего каталога все файлы с расширением .txt, кроме одного заданного файла, в заданный каталог
Доброго времени суток, помогите, пожалуйста с решением задачки) Написать командный файл, который...

0
28.03.2018, 14:41
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.03.2018, 14:41
Помогаю со студенческими работами здесь

Составьте программу, удаляющую букву «Е» из предложения
Составьте программу, удаляющую букву «Е» из предложения.

Составьте программу удаляющую из предложения букву Е
1.Составьте программу удаляющую из предложения букву Е. 2. Составьте программу вставляющую после...

Составьте программу, удаляющую букву «А» из предложения
1. Составьте программу, удаляющую букву «А» из предложения.

Составьте программу, удаляющую все пробелы из введенной строки.
Составьте программу, удаляющую все пробелы из введенной строки.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru