Похожие презентации:
17_Текстовые файлы
1. Текстовые файлы
12. Объявление текстовых файлов
Текстовый файл – совокупность строкпеременной длины, хранящаяся на диске.
Доступ к каждой строке осуществляется
последовательно, начиная с первой. Возможен
доступ к символам, записанным в файл.
Нельзя говорить о длине текстового файла
(числе компонент в нем), так как в текстовом
файле компонентой может быть символ, а может
строка.
Var
t: textfile;
2
3. Стандартные процедуры для работы с текстовыми файлами
Процедура read (имя файловой переменной, список ввода);Список ввода – последовательность переменных типа char или string
через запятую.
Процедура read используется для чтения из файла. Ранее должны быть
выполнены процедуры assignfile и reset. В текстовом файле могут быть
записаны: символы, строки (в том числе и числа integer или real). При
выполнении процедуры read указатель автоматически смещается на число
считанных компонент и указывает на КОМПОНЕНТУ, КОТОРАЯ
СЧИТАЕТСЯ СЛЕДУЮЩЕЙ.
var
t: textfile;
s: string;
c: char;
d: real;
k, k1: integer;
begin
assignfile(t, ‘t.txt’);
reset(t);
read(t, s); или read(t, с); или read(t, d); или read(t, k); или read(t, k,k1);
3
4. Стандартные процедуры для работы с текстовыми файлами
Рекомендации при использовании процедуры readТак как в текстовом файле могут быть записаны: символы, строки (в том числе и
числа), результат чтения зависит от:
1) что записано в файле;
2) какого типа переменные в списке ввода;
3) каким способом прочитаны.
Пример
var
В файле
t: textfile;
записано:
k, k1: integer;
23 45 или
begin
23
assignfile(t, ‘t.txt’);
reset(t);
45
read(t, k, k1);
Результат:
k=23
k1=45
Рекомендуется использовать процедуру read для ввода чисел из
текстового файла.
При вводе чисел с помощью процедуры read все пробелы, символы перевода на следующую
строку, символы окончания строки, символы табуляции игнорируются.
4
5. Стандартные процедуры для работы с текстовыми файлами
Рекомендации при использовании процедуры readПример
В файле
var
записано:
t: textfile;
я пишу
s, s1: string[3];
на доске
begin
Результат:
assignfile(t, ‘t.txt’);
s=‘я п’
reset(t);
s1=‘на ’
read(t, s, s1);
Не рекомендуется использовать процедуру read для ввода
строк.
При вводе строк строка вводится до первого символа
перевода на следующую строку или символа окончания
строки (но не более указанной в описании длины строки).
5
6. Стандартные процедуры для работы с текстовыми файлами
Рекомендации при использовании процедуры readПример
var
t: textfile;
с, с1:char;
begin
assignfile(t, ‘t.txt’);
reset(t);
read(t, c, c1);
В файле
записано:
иy
Результат:
с=‘и’
с1=‘у’
При вводе символов с помощью процедуры read
вводятся и невидимые символы перевода на
следующую строку, и символы окончания строки.
6
7. Стандартные процедуры для работы с текстовыми файлами
Процедура readln (имя файловой переменной, список ввода);ln – сокращение от англ. line – строка.
Процедура readln используется для чтения из файла аналогично
процедуре read. Она считывает до символа окончания строки.Ранее
должны быть выполнены процедуры assignfile и reset. В текстовом
файле могут быть записаны: символы, строки (в том числе и числа
integer или real).
var
t: textfile;
s: string;
c: char;
d: real;
k, k1: integer;
begin
assignfile(t, ‘t.txt’);
reset(t);
readln(t, s);
7
8. Стандартные процедуры для работы с текстовыми файлами
Рекомендации при использовании процедуры readlnПример
var
В файле
записано:
t: textfile;
я пишу
s, s1: string;
на доске
begin
Результат:
s=‘я пишу’
assignfile(t, ‘t.txt’);
s1=‘на доске’
reset(t);
readln(t, s, s1);
Рекомендуется
использовать
процедуру
readln для ввода строк из текстового файла.
8
9. Стандартные процедуры для работы с текстовыми файлами
Рекомендации при использовании процедуры readlnПример
В файле
var
записано:
t: textfile;
23 45
k, k1: integer;
53 67
Результат:
begin
k=23
assignfile(t, ‘t.txt’);
k1=53
reset(t);
readln(t, k, k1);
Не рекомендуется использовать процедуру
readln для ввода чисел.
9
10. Стандартные процедуры для работы с текстовыми файлами
Процедура write (имя файловой переменной, список вывода);Список вывода – последовательность переменных через запятую.
Процедура write используется для записи в файл. Ранее должны быть
выполнены процедуры assignfile и rewrite. В текстовый файл могут быть
записаны: символы, строки (в том числе и числа integer или real). При
выполнении процедуры write указатель автоматически смещается на число
записанных компонент и указывает на АДРЕС КОМПОНЕНТЫ, КОТОРАЯ
ЗАПИШЕТСЯ СЛЕДУЮЩЕЙ.
var
t: textfile;
s: string;
c: char;
d: real;
k, k1: integer;
begin
assignfile(t, ‘t.txt’);
rewrite(t);
write(t, s); или write (t, с); или write (t, d); или write (t, k); или
write (t, k,k1);
10
11. Стандартные процедуры для работы с текстовыми файлами
Рекомендации при использовании процедуры writeПри записи переменных типа integer
Пример
k=23
var
t: textfile;
k: integer;
begin
assignfile(t, ‘t.txt’);
rewrite(t);
…
write(t, k:5);
Результат:
k= 23
5 - число позиций в файле, отведенное под k (включая
позицию под знак числа + или -). Если в числе
меньше знаков, то слева приписывается
недостающее количество пробелов.
11
12. Стандартные процедуры для работы с текстовыми файлами
Рекомендации при использовании процедуры writeПри записи переменных типа string
Пример
s=‘Я пишу’
var
t: textfile;
s: string;
begin
assignfile(t, ‘t.txt’);
rewrite(t);
write(t, s:5);
Результат:
s=‘Я пиш’
5 - число позиций в файле, отведенное под s. Если
в строке больше знаков, то она обрезается.
12
13. Стандартные процедуры для работы с текстовыми файлами
Рекомендации при использовании процедуры writeПри записи переменных типа real
Пример
var
k=-2.3
k=-2.3819
t: textfile;
Результат:
k: real;
k= -2.300 k= -2.382
begin
assignfile(t, ‘t.txt’);
rewrite(t);
write(t, k:9:3);
9 - число позиций в файле, отведенное под k (сюда входят: позиция под знак числа
+ или -, число позиций под целую часть, позиция под точку, число позиций под
дробную часть).
3 – число позиций в файле, отведенное под дробную часть.
Если в числе меньше знаков, то слева приписывается недостающее количество
пробелов, а дробная часть дополняется нулями справа.
Если дробная часть числа занимает больше позиций, чем указано в формате, то
число округляется.
13
14. Стандартные процедуры для работы с текстовыми файлами
Процедура writeln (имя файловой переменной, список ввода);ln – сокращение от англ. line – строка.
Процедура writeln используется для записи в файл аналогично
процедуре write, но запись в конце дополняется символами конец
строки и перевод на новую строку. Ранее должны быть выполнены
процедуры assignfile и rewrite.
var
t: textfile;
s, s1: string;
s=‘Я пишу’
begin
s1=‘на доске’
Результат:
assignfile(t, ‘t.txt’);
Я пишу
rewrite(t);
на доске
writeln(t, s);
writeln(t, s1);
Рекомендуется использовать процедуру writeln для записи строк в
файл.
14
15. Стандартные процедуры для работы с текстовыми файлами
Процедура append (имя файловой переменной);Устанавливает
указатель
в
конец
уже
существующего файла и позволяет дописать в конец
этого файла новые компоненты. Ранее должна быть
выполнена процедура assignfile.
var
t: textfile;
s, s1: string;
begin
assignfile(t, ‘t.txt’);
…
append(t);
writeln(t,s);
15
16. Создание текстового файла 1 способ
12
начало
Связать t с
файлом t.txt
3
Открыть файл t для
записи
4
Цикл А
1≤ i≤n
5
Ввод s
6
7
8
Запись s
в файл t
Цикл А
i
Закрыть
файл t
9
конец
16
17. Создание текстового файла 1 способ
vart: textfile;
s: string;
i, n: integer;
begin
assignfile(t, ‘t.txt’);
rewrite(t);
n:= Memo1.Lines.Count;
for i:=1 to n do begin
s:=Memo1.Lines[i-1];
writeln(t,s)
end;
closefile(t)
end;
17
18. Создание текстового файла 2 способ
1начало
2
Создать файл t.txt
3
конец
Begin
Memo1.Lines.SaveToFile(‘t.txt’)
end;
18
19. Чтение из текстового файла 1 способ
12
начало
Связать t с
файлом t.txt
3
Открыть файл t для
чтения
4
5
не конец
файла t
Да
Читать s
из файла t
Нет
6
Вывод s
7
Закрыть
файл t
8
конец
19
20. Чтение из текстового файла 1 способ
vart: textfile;
s: string;
begin
assignfile(t, ‘t.txt’);
reset(t);
while not(eof(t)) do begin
readln(t,s);
Memo2.Lines.Add(s);
end;
closefile(t)
end;
20
21. Чтение из текстового файла 2 способ
1начало
2
Прочитать файл
t.txt
3
конец
Begin
Memo2.Lines. LoadFromFile(‘t.txt’)
end;
21
22. Использование объекта Mainmenu
Объект MainMenu находится навкладке Standard
22
Программирование