Автор работы: Пользователь скрыл имя, 06 Февраля 2014 в 10:27, курсовая работа
В данной курсовой работе будут описаны некоторые особенности файловой системы Unix, а также программно реализованы некоторые команды ОС Unix в среде ОС Windows.
Введение………………………………………………………………….…….………..5
1 Описание файловой системы Unix………………………………………………….6
2 Постановка задачи…………………………………………………………………….8
3 Описание команд и сравнение их с родственными…………………………………8
4 Выбор средств реализации…………………………………………………………..10
5 Программная реализация эмулятора………………………………………………..12
5.1 Структурная схема алгоритма используемого в программе……………...12
5.2 Модульная структура программы…………………………………………..13
5.3 Описание диалога с пользователем………………………………………...14
Заключение………………………………………….………………………….………17
Список литературы………………………………………………………………….…18
Приложение А……………………………………………………………………….....19
begin
if str1[i]=str[shet] then inc(shet)
else shet:=1;
if str1[i+1]<>str[shet] then shet:=1;
if (shet=length(str))and(shet<>1) then
if ksovp<>0 then if wfail=false then memo1.Lines.Add(inttostr(nsim)
end;
end;
inc(b);
case flag of
1:if ksovp<>0 then if wfail=false then memo1.Lines.Add(str1) else
writeln(fil[w],str1);
3:if ksovp<>0 then vsesovp:=vsesovp+ksovp;
end;
shet:=1; ksovp:=0;
end;
if (flag=3) and (Eof(fil[j])=true) then
if wfail=false then memo1.Lines.Add(inttostr(
writeln(fil[w],inttostr(
vsesovp:=0
end;
if wfail=true then closeFile(fil[w]);
end;
4: begin {dc}
s1:=strtofloat(imaf[1]);
s2:=strtofloat(imaf[2]);
if imaf[3]='+' then resul:=s1+s2;
if imaf[3]='-' then resul:=s1-s2;
try if imaf[3]='*' then resul:=s1*s2;
if imaf[3]='/' then resul:=s1/s2;
except
on EZeroDivide do
begin
showMessage('Невозможно выполнить данную операцию') ;
exit;
end;
end;
if imaf[4]='p' then begin if wfail=false
then memo1.Lines.Add(floattostr(
writeln(fil[w],floattostr(
if wfail=true then closeFile(fil[w]);
end;
5:begin {cat}
if (kl<>'-s') and (kl<>'') then begin
exit;
For j:=1 to k do
begin
proverka;
if flag=10 then exit;
Reset(fil[j]);
while Eof(fil[j])<>true do
begin
readln(fil[j],str);
if (str='') and (kl='-s') and (flag>=7) then continue;
if wfail=false then memo1.Lines.Add(str)else
writeln(fil[w],str);
if flag=7 then flag:=6;
if str='' then inc(flag);
end;
end;
if wfail=true then closeFile(fil[w]);
end;
6:begin {comm }
if k<>2 then begin
showMessage('количество файлов должно быть равно 2');
exit
end;
str:='';str1:='';
if (kl<>'-1') and (kl<>'-2') and (kl<>'-3') and
(kl<>'-13') and (kl<>'-13') and (kl<>'-23') and (kl<>'')
then begin
showMessage('Неверный ключ') ;
exit;
end;
if kl='' then flag:=0;
if kl='-1' then flag:=1;
if kl='-2' then flag:=2;
if kl='-3' then flag:=3;
if kl='-12' then flag:=4;
if kl='-13' then flag:=5;
if kl='-23' then flag:=6;
Reset(fil[1]);
Reset(fil[2]);
while (Eof(fil[1])<>true) or (Eof(fil[2])<>true) do
begin
if Eof(fil[1])=true then begin readln(fil[2],str1); str:='' end;
if Eof(fil[2])=true then begin readln(fil[1],str); str1:='' end;
if (Eof(fil[1])<>true) and (Eof(fil[2])<>true) then begin
case flag of
0:begin
if str=str1 then if wfail=false then memo1.Lines.Add(' | '+' | '+str1)else
writeln(fil[w],' | '+' | '+str1) else
if wfail=false then memo1.Lines.Add(str+' | '+str1+' | ') else
writeln(fil[w],str+' | '+str1+' | ');
end;
1:begin
if str=str1 then if wfail=false then memo1.Lines.Add(' | '+str1)else
writeln(fil[w],' | '+str1) else
if wfail=false then memo1.Lines.Add(str1+' | ')else
writeln(fil[w],str1+' | ');
end;
2:begin
if str=str1 then if wfail=false then memo1.Lines.Add(' | '+str) else
writeln(fil[w],' | '+str) else
if wfail=false then memo1.Lines.Add(str+' | ')else
writeln(fil[w],str+' | ');
end;
3:if str<>str1 then if wfail=false then memo1.Lines.Add(str+' | '+str1)else
writeln(fil[w],str+' | '+str1);
4:if str=str1 then if wfail=false then memo1.Lines.Add(str) else
writeln(fil[w],str);
5:if str<>str1 then if wfail=false then memo1.Lines.Add(str1) else writeln(fil[w],str1)else memo1.Lines.Add('') ;
6:if str<>str1 then if wfail=false then memo1.Lines.Add(str)else writeln(fil[w],str) else memo1.Lines.Add('') ;
end;
end;
if wfail=true then closeFile(fil[w]);
end;
7:begin {cp}
if k<>2 then begin
showMessage('колличество файлов должно быть равно 2');
exit
end;
if (kl<>'-i') and (kl<>'') then begin
if kl='' then flag:=0;
if kl='-i' then flag:=1;
Reset(fil[1]);
Rewrite(fil[2]);
case flag of
0: begin
while (Eof(fil[1])<>true) do
begin
Readln(fil[1],str);
writeln(fil[2],str);
end;
end;
1:begin
if MessageDlg('Вы уверены что хотите скопировать файл'+imaf[1]+#13
+'в файл'+imaf[2],mtConfirmation, [mbYes, mbNo], 0) = mrYes then
begin
while (Eof(fil[1])<>true) do
begin
Readln(fil[1],str);
writeln(fil[2],str);
end;
end else exit;
end;
end;
Closefile(fil[2]);
end;
8: begin {man}
str:='';
AssignFile(fil[1],par+'.txt');
Reset(fil[1]);
while (Eof(fil[1])<>true) do
begin
readln(fil[1],str);
if wfail=false then memo1.Lines.Add(str)else
writeln(fil[w],str);
end;
if wfail=true then closeFile(fil[w]);
end;
end;
end;
end;
procedure TForm1.Memo1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=13 then Memo1.SelText:='$ ';
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Memo1.SelText:='$ ';
end;
end.