1. Заголовок темы должен быть информативным. В противном случае тема удаляется ... 2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения. 3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали! 4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора). 5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM! 6. Одна тема - один вопрос (задача) 7.Проверяйте программы перед тем, как разместить их на форуме!!! 8.Спрашивайте и отвечайте четко и по существу!!!
Процедура поиска, Для задачи на файлы...Помогите=))
Слепил прогу.В ней вводятся фамилия,имя,отчество студента,его порядковый номер и всё сохраняется в текстовый файл.Вот только не могу написать процедурку,с помощью которой осуществляется поиск студента по его порядковому номеру...т.е.вводишь номер студента и прога выдаёт те его фам.имя.отч.Помогите плиз.=))Вот сама программа:
uses SysUtils;
type mas=array[1..100] of string;
var f,f1:textfile; txt,way,filename,fullname,fn1,fullname2,filename2:string; act1:char; kol:integer;
procedure sortirovka(fname:string;n:integer); var f1:textfile; i,a,j:integer; t,str:string; k,f:mas; begin i:=1; assign(f1,fname); reset(f1); repeat readln(f1,str); k[i]:=str; f[i]:=str[1]; i:=i+1; until eof(f1); close(f1); for a:=1 to n do begin for j:=1 to n-a do begin if (f[j]>f[j+1]) then begin t:=k[j]; k[j]:=k[j+1]; k[j+1]:=t; end; end; end; assign(f1,fname); rewrite(f1); for i:=1 to n do writeln(f1,k[i]); close(f1); end;
procedure vivod(fname:string); var f1:textfile; str:string; begin assign(f1,fname); reset(f1); repeat readln(f1,str); writeln(str); until eof(f1); close(f1); end;
procedure vivod2(fname1,fname2:string); var f1,f2:textfile; str,prob:string; i,o,j,k:integer; r:mas; begin prob:=' '; o:=1; k:=1; assign(f1,fname1); reset(f1); repeat readln(f1,str); for i:=1 to length(str) do if str[i]<>' 'then r[o]:=r[o]+str[i] else if str[i+1]<>' ' then o:=o+1; until eof(f1); assign(f2,fname2); rewrite(f2); close(f2); append(f2); for j:=1 to (o div 4) do begin k:=4*j; write(f2,r[k]); write(f2,prob); write(f2,r[K-1]); write(f2,prob); write(f2,r[k-2]); write(f2,prob); write(f2,r[k-3]); writeln(f2,prob); end; close(f2); vivod(fname2); end; begin kol:=0; txt:='.txt'; way:='E:\For files\'; writeln('Vvedite imya faila kuda vi xotite soxranitb vash spisok'); readln(filename); fullname:=way+filename+txt; assign(f,fullname); rewrite(f); close(f); repeat writeln(' "1"-vvod novogo elementa'); writeln; writeln(' "2"-pokazatb spisok'); writeln; writeln(' "3"-pokazatb spisok v novom formate'); writeln; writeln(' "q"-vihod '); writeln; write('Viberite deistvie: '); writeln; readln(act1); case act1 of '1':begin zapis(fullname); kol:=kol+1; end; '2':begin sortirovka(fullname,kol); writeln('Familiya',' ','Imya',' ','Otchestvo',' ','Nomer'); vivod(fullname); end; '3':begin writeln('Enter the name of the file where you want to save your new spisok'); readln(filename2); fullname2:=way+filename2+txt; {assign(f1,) } writeln('Nomer',' ','Familiya',' ','Imya',' ','Otchestvo'); vivod2(fullname,fullname2) end; 'q':exit; end; until false; end.