1. Заголовок темы должен быть информативным. В противном случае тема удаляется ... 2. Все тексты программ должны помещаться в теги [code=pas] ... [/code]. 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.