Помогите. У меня такая задача: 1.На диске С есть каталоги А1, А2, А3. В каждом каталоге 2-3 подкаталога. Есть 20 файлов. Они распределены частично в корне С, частично в каталогах, частично в подкаталогах. Необходимо для заданного имени файла определить есть ли он на диске и путь к нему.
2.Определить – есть ли в различных каталогах одинаковые файлы.
Вот с 1 задачей я справился (нашел), а вот с 2 нет. Я выложу листинг:
katalog
poisk(string)
vibor(integer)
wih(char)
spisok
put
kat(string,string)
file(string,string,string)
def(string,string,string)
nach
vih
goal
nach,
katalog.
clauses
nach if makewindow(1,113,116, " ",0,0,25,80),
makewindow(2,113,116," ",0,0,25,60),
gotowindow(2), cursor(0,0),
write("ПРОГРАММА ПОИСКА ФАЙЛА В КАТАЛОГЕ"),cursor(2,0),
write("Варианты вопросов:"), nl,
write("1.Вывести список всех файлов"),nl,
write("2.Вывести путь к заданному файлу").
katalog if gotowindow(2),cursor(7,0),
write("Выберите номер вопроса "), readint(N), vibor(N), nl.
vibor(N) if N=1, spisok, vih or N=2, put,vih.
put if gotowindow(2), nl, write("Введите имя файла "),
readln(R), nl, write("Путь к файлу:"), nl,poisk(R) or nl,
write("Больше нет файла с таким именем").
vih if gotowindow(2), nl,
write("Выход - нажмите 0, повторить - 1 "),
readchar(M), wih(M).
spisok if makewindow(3, 113,116, "Список файлов",0,60,25,20),
gotowindow(3), cursor(0,0), file(X,Y,Z),
write(Y,".",Z), nl, Y="выборы", write("Конец списка").
poisk(X) if file(K,X,P), def(K,X,P), 2>3.
def(K,X,P) if K="C",nl,write("C - ",X,"(",P,")"), nl
or K<>"C", write("C - ",K," - ",X,"(",P,")"), nl.
wih('0').
wih(T) if T='1', nach, spisok, katalog.
kat("C","A1").
kat("C","A2").
kat("C","A3").
file("C","sm","com").
file("C","работа","bat").
file("A1","student","doc").
file("A1","uchet","txt").
file("A1","выбор","xls").
file("A2","program","exe").
file("A2","program","dpr").
file("A2","program","pas").
file("A3","student","txt").
file("A3","выборы","doc").
Как сюда присобачить 2 часть. Зарание благодарю!
|