Лабораторная работа №10
|
|
Тема - ФАЙЛЫ. Цель работы - изучение методов обработки, сохранения, создания файлов.
1. Дан текстовый файл. Вывести количество содержащихся в нем символов и строк (маркеры концов строк EOLN и конца файла EOF при подсчете количества символов не учитывать).
2. Даны два текстовых файла с именами Name1 и Name2. Создать новый текстовый файл с именем Name3, являющийся объединением содержимого файлов Name1 и Name2 (в указанном порядке).
3. Даны два текстовых файла с именами Name1 и Name2. Добавить в конец файла Name1 содержимое файла Name2.
4. Дано число k (< 10) и текстовый файл, содержащий более k строк. Удалить из файла первые и последние k строк.
5. Дано число k (< 10) и текстовый файл, содержащий более k строк. Создать новый текстовый файл, содержащий k последних строк исходного файла.
6. Дано число k и текстовый файл. Удалить из файла строку с номером k (строки нумеруются от 0). Если строки с таким номером нет, то оставить файл без изменений.
7. Дан текстовый файл. Создать символьный файл, содержащий все знаки препинания, встретившиеся в текстовом файле (в том же порядке).
8. Дан текстовый файл. Найти количество абзацев в тексте, если абзацы отделяются друг от друга одной или несколькими пустыми строками.
9. Дан текстовый файл. Найти количество абзацев в тексте, если каждый абзац начинается с красной строки (5 пробелов). Пустые строки между абзацами не учитывать.
10. Дано целое число N и текстовый файл. Создать файл, содержащий все слова длины N из исходного файла (знаки препинания, расположенные в начале и в конце слов, не учитывать). Если исходный файл не содержит слов длины N, оставить результирующий файл пустым.
11. Дан текстовый файл. Вывести первое и последнее слово текста наибольшей длины (с учетом знаков препинания, расположенных в начале и в конце слов).
12. Дана некоторая буква и текстовый файл. Создать файл, содержащий все слова из исходного файла, начинающиеся и оканчивающиеся этой буквой (как прописной, так и строчной). Знаки препинания, расположенные в начале и в конце слов, не учитывать. Если исходный файл не содержит подходящих слов, оставить результирующий файл пустым.
13. Дано число N и текстовый файл. Удалить из файла абзац с номером N (абзацы выделяются с помощью красной строки (5 пробелов) и нумеруются от 1). Пустые строки между абзацами не учитывать и не удалять. Если абзац с данным номером отсутствует, то оставить файл без изменений.
14. Дан текстовый файл, каждая строка которого содержит изображения нескольких вещественных чисел, разделенных пробелами. Создать файл вещественных чисел, содержащий эти числа в том же порядке.
15. Дан текстовый файл, содержащий слова паразиты (ну, короче и т.п.) Удалить из текстового файла эти слова и создать новый файл без этих слов.
16. Дана функция y=sin(x), диапазон аргумента от a до b c шагом 0.01. Создать текстовый файл, содержащий в каждой строке запись типа: sin(x)=y подставляя вместо x значение аргумента а вместо y - соответствующее значение функции. Например: sin(3.14)=1 для каждого значения аргумента из указанного диапазона с заданным шагом.
17. Даны два текстовых файла. Составить третий файл, состоящий из слов, которые встречаются и в первом файле и во втором.
|
|
|
5. Дано число k (< 10) и текстовый файл, содержащий более k строк. Создать новый текстовый файл, содержащий k последних строк исходного файла. Код Program Lab10; Var x,n:text; {файловая переменная} s:string; {строковая переменная} y,k,m:byte;{ числовая переменная } Begin write('Введите "k": ');readln(k); Assign(x,'vhod.txt');Reset(x); While not Eof(x) do Begin readln(x,s); {Чтение из текстового файла} inc(m); {увеличивает переменную "m" на единицу } End; Close(x); {Закрывает текстовый файл 'x'} Reset(x);{Окрытие текстового файла 'x'} Assign(n,'vuhod.txt');{Назначает файловой переменной имя внешнего файла.} Rewrite(n);{устанавливает файл с именем n в начальное состояние режима записи} While not Eof(x) do {пока файл не закончится выполнять} Begin readln(x,s);{Чтение из текстового файла} inc(y); {увеличивает переменную 'y' на единицу } if m-y<k then writeln(n,s); {Если количество строк меньше заданного "k" вывести "s" строки во второй текстовый файл "n"} End; Close(n); {Закрывает текстовый файл 'n'} writeln('Результат в файле "vuhod.txt"'); readln; End.
Selena
№ 2 | Автор: Selena |
2014-11-05, 14:38 | Изменено: Selena - Ср, 2014-11-05, 19:36
|
Репутация: [ + 2 ]
|
|
|
8. Дан текстовый файл. Найти количество абзацев в тексте, если абзацы отделяются друг от друга одной или несколькими пустыми строками. Код Program Mr_Pozitiv; //('*****************************************************'); //('* laba #10 file: text.pas == ver.1.0 *'); //('* exercise *'); //('* Malevanny V. A. Group I-14-1 Date: 05/11/14 *'); //('*****************************************************'); var f :text; s :string; i :integer; b :boolean; begin Assign(f,'text.txt'); Reset(f); Readln(f,s); if s='' then b:=false else b:=true; if b then i:=1 else i:=0; while not eof(f) do begin Readln(f,s); if not(b) and (s<>'') then inc(i); if s='' then b:=false else b:=true; end; writeln('Количество абзацев: ',i); close(f); end.
perfect ;)
|
|
|
3. Даны два текстовых файла с именами Name1 и Name2. Добавить в конец файла Name1 содержимое файла Name2. Код program AlenaKit10; var T1,T2:text; text:string; begin Assign(T1,'C:\PABCWork.NET\Name1.txt'); Assign(T2,'C:\PABCWork.NET\Name2.txt');
begin if FileExists('C:\PABCWork.NET\Name1.txt') then begin Append(T1); Reset(T2); while not EOF(T2) do begin readln(T2,text); writeln(T1,text); end; Close(T1); Close(T2);
end else writeln('Файл поврежден или удален,проверьте наличие и целостность файла Name1.txt')
end; end.
до выполнения программы после выполнения
AlenaKit♥
|
|
|
1. Дан текстовый файл. Вывести количество содержащихся в нем символов и строк (маркеры концов строк EOLN и конца файла EOF при подсчете количества символов не учитывать). Код program dimeshion; {('**************************************************'); ('* laba #10 file: di_10.pas == ver1.0 *'); ('* laba #10 *'); ('* Bazaliy E.V. Group: I-14-1 Date: 09/11/14 *'); ('**************************************************');} uses crt; var tx1: text; s1,str: string; KolStr,KolSymb: integer; begin clrscr; writeln('Введите имя файла:'); readln(s1); assign(tx1,s1); reset(tx1); KolStr:=0; KolSymb:=0; while not Eof(tx1) do begin readln(tx1,str); KolStr:= KolStr+1; KolSymb:=KolSymb+length(str); end; close(tx1); writeln('Количество строк в файле: ',KolStr); writeln('Количество символов в файле: ',KolSymb); writeln('Press enter.'); readln; end.
№ 5 | Автор: dimeshion |
2014-11-09, 15:56 | Изменено: dimeshion - Вс, 2014-11-09, 17:28
|
Репутация: [ + 2 ]
|
|
|
Код Program ira_butenko97 Var b1,b2:text; s:string; i,k,n,c:byte; Begin write('Введите количество удаляемых строк (k<10) '); readln(k); writeln; Assign(b1,'d:\butenko.txt'); Rewrite (b1); writeln (b1,'aaaaaaaaaaaaaaaaaaaa'); writeln (b1,'bbbbbbbbbbbbbbbbbbbb'); writeln (b1,'cccccccccccccccccccc'); writeln (b1,'dddddddddddddddddddd'); writeln (b1,'iiiiiiiiiiiiiiiiiiii'); writeln (b1,'ffffffffffffffffffff'); writeln (b1,'gggggggggggggggggggg'); writeln (b1,'lalalalalalalalalal'); writeln (b1,'ededeeeededededede'); writeln (b1,'yttytytt'); writeln (b1,'zazazazazazazazaz'); writeln (b1,'tytytytytytytyttyyt'); writeln (b1,'jjjjjj'); writeln (b1,'qqqqqqqq'); Close(b1); Reset(b1); While not Eof(b1) do Begin readln(b1,s); inc(n); End; Close(b1); Reset(b1); Assign(b2,'d:\ira.txt'); Rewrite(b2); repeat readln(b1,s); inc(c); if c>k then begin writeln(b2,s); end; n:=n-1; until n=k; Close(b1); Erase(b1); Close(b2); Rename(b2,'d:\butenko.txt'); writeln('Результат в файле "d:\butenko.txt"'); readln; End. Дано число k (< 10) и текстовый файл, содержащий более k строк. Удалить из файла первые и последние k строк.
|
|
|
6. Дано число k и текстовый файл. Удалить из файла строку с номером k (строки нумеруются от 0). Если строки с таким номером нет, то оставить файл без изменений. Код Program ELMpr_La10; var f1,f2:text; i,k:integer; s:string; begin assign(f1, 'input.txt'); Reset(f1); While not Eof(f1) do Begin readln(f1,s); inc(i); End; close(f1); write('Номер строки, которую нужно удалить: '); readln(k); if k<=i then Begin Assign(f2,'output.txt'); Rewrite(f2); Reset(f1); i:=0; While not Eof(f1) do Begin readln(f1,s); if k<>(i+1) then writeln(f2,s); inc(i); End; close(f1); close(f2); erase(f1); rename(f2, 'input.txt'); End else writeln('В файле нет этой строки'); end.
El_Magnifico with <3
№ 7 | Автор: El_MAgnifico |
2014-11-20, 18:20 | Изменено: El_MAgnifico - Чт, 2014-11-20, 23:27
|
Репутация: [ + 8 ]
|
|
|
14. Дан текстовый файл, содержащий слова, которые могут начинаться или заканчиваться гласными или согласными. Создать новый файл на основе заданного, удалив из него все слова начинающиеся или заканчивающиеся гласными буквами.
Код var output,input:text; s,s1:string; i:integer; q,x:set of char; begin q:=['b','c','d','f','g','h','k','l','m','n','p','q','r','s','t','v','w','z', 'B','C','D','F','G','H','K','L','M','N','P','Q','R','S','T','V','W','Z', 'Б','В','Г','Д','Ж','З','Й','К','Л','М','Н','П','Р','С','Т','Ф','Х','Ц','Ч','Ш','Щ','Ъ','Ь', 'б','в','г','д','ж','з','й','к','л','м','н','п','р','с','т','ф','ч','ц','ч','ш','щ','ъ','ь']; x:=[' ',',','!',';','.',':','?']; assign(output, 'output.txt'); rewrite(output); assign(input, 'input.txt'); reset(input); while not eof(input) do begin readln(input,s); for i:=1 to length(s) do if (s [i]in x) or (i=length(s)) then begin if (i=length(s))and(not(s[i]in x)) then s1:=s1+s[i]; if (s1[1] in q) and (s1[length(s1)] in q) then writeln(output,s1); s1:=''; end else s1:=s1+s[i]; end; close(input); close(output); writeln('Программа завершена. Результаты действий записаны в "output.txt"') end.
|
|
|
15.Дан текстовый файл, содержащий слова паразиты (ну, короче и т.п.) Удалить из текстового файла эти слова и создать новый файл без этих слов. Код Program OlgaFrolova; var TX,TX2:text; s,str:string; i,j,k,v:byte; Begin Assign (TX2,'E:\Result.txt'); rewrite(TX2); Assign(TX,'E:\SLOVA.txt'); reset(TX); while not Eof(TX) do begin Readln(TX,s); repeat i:=pos('блин',s); j:= pos('ну',s); k:=pos('типа',s); v:=pos('короче',s); if (i<>0) then delete(s,i,4); if (j<>0) then delete(s,j,2); if (k<>0) then delete (s,k,4); if (v<>0) then delete (s,v,6); until (i=0) and (j=0)and (k=0) and (v=0); writeln(TX2,s); end; close(TX2); close(TX); writeln('Результат в файле "Result"'); end.
25101996
|
|
|
1. Дан текстовый файл. Вывести количество содержащихся в нем символов и строк (маркеры концов строк EOLN и конца файла EOF при подсчете количества символов не учитывать). Код program dimeshion; uses crt; var tx1: text; s1,str: string; KolStr,KolSymb: integer; begin clrscr; writeln('Введите имя файла:'); readln(s1); assign(tx1,s1); reset(tx1); KolStr:=0; KolSymb:=0; while not Eof(tx1) do begin readln(tx1,str); KolSymb:=Kolsymb+length(str); inc(KolStr); end; close(tx1); writeln('Количество строк в файле: ',KolStr); writeln('Количество символов в файле: ',KolSymb); writeln('Press any key.'); readkey; end.
|
|
|
9. Дан текстовый файл. Найти количество абзацев в тексте, если каждый абзац начинается с красной строки (5 пробелов). Пустые строки между абзацами не учитывать.
Код Program qwerty159; Var a: text; s: string; i: byte; Begin Assign(a,'d:\123.txt'); Reset(a); i:=0; While not Eof(a) do begin Readln(a,s); if copy(s,1,5)<>'' then Inc(i); end; Close(a); Writeln(i); Readln; end.
|
|
|
Код Program _10; Var a,b,h,x,y:real; Begin Assign(Output,'ttt.txt'); Rewrite(Output); Readln(a, b); x:=a; h:=0.01; while x<=b do Begin y:=sin(x); writeln('sin(',x:0:3,')=',y:0:5); x:=x+h; End; Close(Output) End. 16. Дана функция y=sin(x), диапазон аргумента от a до b c шагом 0.01. Создать текстовый файл, содержащий в каждой строке запись типа: sin(x)=y подставляя вместо x значение аргумента а вместо y - соответствующее значение функции. Например: sin(3.14)=1 для каждого значения аргумента из указанного диапазона с заданным шагом.
|
|
|
Задание 2. Даны два текстовых файла с именами Name1 и Name2. Создать новый текстовый файл с именем Name3, являющийся объединением содержимого файлов Name1 и Name2 (в указанном порядке).
Код Var Z1, Z2, Z3:text; text:string;
Begin Assign(Z1, 'C:\PABCWork.NET\OPR\Name1.txt'); Assign(Z2, 'C:\PABCWork.NET\OPR\Name2.txt'); Assign(Z3, 'C:\PABCWork.NET\OPR\Name3.txt');
Begin Append(Z3); Reset(Z1); While not EOF(Z1) do Begin Readln(Z1, text); Writeln(Z3,Text); End; Close(Z1); Reset(Z2); While not EOF(Z2) do Begin Readln(Z2, text); Writeln(Z3,Text); End; Close(Z2); Close(Z3); End; end.
Файлы до запуска программы:
Файлы после запуска программы:
|
|
|
9. Дан текстовый файл. Найти количество абзацев в тексте, если каждый абзац начинается с красной строки (5 пробелов). Пустые строки между абзацами не учитывать.
Код Program qwerty159; uses crt; Var a: text; s, b, k: string; i: byte; Begin Assign (a, 'd:\123.txt'); reset(a); i:=0; k:=' '; While not Eof(a) do begin Readln(a, s); b:=copy(s, 0, 5); if (b = k) then begin inc(i); end; writeln(s); end; close(a); clrscr; writeln(i); readln; end.
|
|
|
10. Дано целое число N и текстовый файл. Создать файл, содержащий все слова длины N из исходного файла (знаки препинания, расположенные в начале и в конце слов, не учитывать). Если исходный файл не содержит слов длины N, оставить результирующий файл пустым. Код const limits=[#0..#32,'.',',',':',';','!','?','"']; var output,input:text; s:string; len,і,n,back:byte; begin writeln('Введите длинну слов'); readln(len); assign(input,'input.txt'); reset(input); assign(output,'output.txt'); rewrite(output); while not(eof(input)) do begin readln(input,s); і:=1; n:=0; while(i<=length(s)) do begin while(i<=length(s)) and (s[i] in limits) do inc(i); if i<=length(s) then begin back:=i; while(i<=length(s)) and not(s[i] in limits) do inc(i); inc(n); if (length(copy(s, back, i-back))=len) then writeln(output,copy(s, back, i-back)); end; end; end; close(input); close(output); end.
|
|
|
program laba; var Tx:text; Sf:text; sm,pr: String; i,b:byte; Begin Assign (Sf,'D:\Result.txt');
Assign(Tx,'D:\primer.txt'); rewrite(Sf); Reset(Tx); while not Eof(TX) do begin Readln(TX,sm); b := Length(sm); for i := 1 to Length(sm) do begin if sm = '!' then pr += '!'; if sm = '.' then pr += '.'; if sm = ':' then pr += ':'; if sm = '-' then pr += '-'; if sm = ',' then pr += ','; if sm = '?' then pr += '?'; if sm = ';' then pr += ';'; if sm = '"' then pr += '"'; end; end; writeln(sm); writeln(pr); writeln(Sf,pr); close(Sf); close(TX); writeln('Результат в файле "Result"'); end.
Ирина Зазноба
№ 16 | Автор: iren456 |
2014-11-28, 19:03 | Изменено: iren456 - Сб, 2014-11-29, 23:39
|
Репутация: [ + 0 ]
|
|
|
11. Дан текстовый файл. Вывести первое и последнее слово текста наибольшей длины (с учетом знаков препинания, расположенных в начале и в конце слов). Код var s,s2,s1,s3:string; i:integer; f:textfile; begin assignfile(f,'1.txt'); reset(f); read(f,s); s:=s+' '; for i:=1 to length(s) do begin if s[i]<>' ' then s1:=s1+s [i]else begin if length(s1)>=length(s2) then begin s2:=''; s2:=s1; s1:=''; end else s1:=''; end; end; s1:=''; for i:=1 to length(s) do begin if s[i]<>' ' then s1:=s1+s [i]else begin if (length(s1)>length(s3)) and (s1<>s2) then begin s3:=''; s3:=s1; s1:=''; end else s1:=''; end; end; writeln(s); writeln(s3); writeln(s2); end.
№ 17 | Автор: Forzorezor |
2014-11-28, 20:20 | Изменено: Forzorezor - Пт, 2014-11-28, 20:55
|
Репутация: [ + 4 ]
|
|
|
17. Даны два текстовых файла. Составить третий файл, состоящий из слов, которые встречаются и в первом файле и во втором.
Код Program ProjectX; const n = 9; var mas1: array[1..n] of string; mas2: array[1..n] of string; W1,W2,W3: text; st1,st2: string; t,r: integer; begin assign(W1, 'C:\Users\user\Desktop\File 1.txt');{Начало работы с файлами} reset(W1); assign(W2, 'C:\Users\user\Desktop\File 2.txt'); reset(W2); assign(W3, 'C:\Users\user\Desktop\File 3.txt'); rewrite(W3); {Открываем File 3 для записи } for t:=1 to n do {Проверяем строки File 1} begin readln(W1, st1); mas1[t]:=st1; end; for r:=1 to n do {Проверяем строки File 2} begin readln(W2, st2); mas2[r]:=st2; end; for t:=1 to n do for r:=1 to n do if mas1 [t]= mas2 [r]then writeln(W3, mas1[t]); {Запись содержимого File 1 и File 2 в File 3} close(W1); close(W2); close(W3); end.
http://195.208.237.170/WDE....a10.pas
№ 18 | Автор: stx |
2014-12-01, 11:34 | Изменено: stx - Пн, 2014-12-01, 11:36
|
Репутация: [ + 2 ]
|
|
|