Interfaz de manejo de archivos

pascal:
PROGRAM INTERFAZ;
uses crt;

procedure carpeta;
VAR
 n,dir:string[10];
 begin
  {$I-}
  clrscr;
  gotoxy(32,13);write('CREAR CARPETA');
  dir:='c:\';
  gotoxy(2,15);write('
Nombre de la nueva carpeta: ');READLN(n);
  dir:=concat(dir+n);
  mkdir(dir);gotoxy(2,3);
  if IOResult <> 0 then
   begin gotoxy(2,17);write('
No se pudo crear el directorio'); end
   else
    gotoxy(2,17);write('
Ha sido creada la carpeta..  '); writeln(n);
    GOTOXY(2,25);WRITE('
Cualquier tecla para continuar ...');
    READKEY;
 end;


procedure copiar;
var dir,dir2:string;
    arch,arch2:file of char;
    c:char;
 begin
 clrscr;
  gotoxy(32,13);write('
COPIAR ARCHIVO');
 gotoxy(2,15);write('
Direccion del archivo original: ');read(dir);
 readln;
 gotoxy(2,17);write('
Direccion donde se copiar  el archivo: ');read(dir2);
 {$I-}
 assign(arch,dir);
 assign(arch2,dir2);
 reset(arch);gotoxy(2,15);
 if IOresult <>0 then
 begin gotoxy(2,19);write('
archivo no encontrado'); end
 else
  begin
  rewrite(arch2);
  while not EOF(arch) do
   begin
    read(arch,c);
    write(arch2,c);
    WRITELN(c);
   end;
    close(arch);

    close(arch2);
   GOTOXY(2,19);write('
Archivo copiado');
   gotoxy(2,25);write('
Tecla para continuar...');
  end;
    readkey;
 end;

procedure cortar;
var
  dir,dir2:string;
  arch,arch2:file of char;
  c:char;
 begin
 CLRSCR;
  gotoxy(32,15);write('
CORTAR ARCHIVO');
 readln;
  gotoxy(2,17);write('
Direccion del archivo: ');read(dir);
  READLN;
  gotoxy(2,19);write('
Direccion a mover el achivo: ');read(dir2);
  {$I-}
  assign(arch,dir);
  assign(arch2,dir2);
  reset(arch);gotoxy(2,4);
  if ioresult =0 then
  begin
  rewrite(arch2);
  while not EOF(arch) do
   begin
    read(arch,c);
    write(arch2,c);
    write(c);
   end;
   close(arch);
   close(arch2);
 erase(arch);
  GOTOXY(2,21);WRITELN('
Archivo exitosamente movido');
 end
 else
 gotoxy(2,21);write('
Archivo no encontrado');
 gotoxy(2,25);WRITE('
Tecla para continuar...');
 readkey;
 end;

procedure renombre;
var raiz,dir,dir2,nom,nom2:string;
     arch:file;
 begin
 clrscr;
  gotoxy(32,15);write('
RENOMBRAR ARCHIVO');
 readln;
 gotoxy(2,17);write('
Direccion del archivo: ');read(raiz);
 readln;
 gotoxy(2,19);write('
Nombre del archivo: ');read(nom);
 dir:=concat(raiz+nom);
 readln;
 gotoxy(2,21);WRITE('
Nuevo nombre para el archivo: ');read(nom2);
 assign(arch,dir);
 dir2:=concat(raiz+nom2);
 rename(arch,dir2);
 gotoxy(2,23);writeLN('
Archivo modificado...');
 gotoxy(2,25); write('
Cualquier tecla para continuar...');
 readkey;

 end;

procedure eliminar;
var
 dir:string;
 arch:file;
 begin
 clrscR;
  gotoxy(32,15);write('
ELIMINAR ARCHIVO');
  gotoxy(2,17);write('
Direccion del archivo: ');read(dir);
  assign(arch,dir);
  erase(arch);
 gotoxy(2,19);write('
Archivo eliminado...');
 gotoxy(2,25);write('
Cualquier tecla para continuar...');
 reaDKEY;
 end;

procedure mezcla;
var
   dir,dir2,nom:string;
   arch,arch2,arch3:file of char;
   c:char;
  LEC:STRING;
  I:INTEGER;
 begin
 clrscR;
 gotoxy(32,15);write('
MEZCLAR ARCHIVOS');
 GOTOXY(2,17);write('
Direccion del archivo a mezclar: ');read(dir);
 readln;
 GOTOXY(2,19);write('
Direccion del otro archivo a mezclar: ');read(dir2);
 readln;
 GOTOXY(2,21);write('
Nombre del nuevo archivo: ');read(nom); DELAY(150);
 GOTOXY(1,30);
 {$I-}
assign(arch,dir);
 reset(arch);
 assign(arch3,concat('
c:\'+ nom ));
 rewrite(arch3);
 if IOresult = 0 then
 begin
 while not EOF(arch) do
  begin
   read(arch,c);
  write(arch3,c);
  WRITE(C);
 end;
  close(arch);
 FOR I:=1 TO 50 DO
 WRITE(ARCH3,LEC[I]);

 assign(arch2,dir2);
 reset(arch2);
 if IOresult =0 then
 begin
  while not EOF(arch2) do
  begin
   read(arch2,c);
  write(arch3,c);
  WRITE(C);
  end;
  close(arch2);
  close(arch3);clrscr;
   gotoxy(2,17);writeLN('
Mezcla lista...');
  gotoxy(2,25);write('
Cualquier tecla para continuar...');
  readkey;
 end
 else
 gotoxy(2,24);write('
El segundo archivo no se encontr¢...');
 end
 else
 gotoxy(2,24);write('
El primer archivo no se encontr¢... ');
 end;

procedure lista;
var
   dir:string;
   arch,arch2:file of char;
   c:char;
 begin
 clrscr;
  gotoxy(32,15);write('
LISTADO DEL ARCHIVOS');
 gotoXY(2,17);write('
Direccion: ');read(dir);
 {$I-}
 assign(arch,dir);
 reset(arch);
 assign(arch2,'
c:\aux.txt');

 if ioresult = 0 then
 begin
  IF FILESIZE(ARCH)>2048 THEN
   begin
    CLRSCR;
   writELN('
-------Listado del archivo ',dir,'------------------');
   DELAY(150);
   end;
 while not EOF(arch) do
   begin
    read(arch,c);
    write(c);
    delay(50);
   end;
  end
  else
  begin
   gotoxy(2,19);write('
El archivo no se encontr¢');
  end;
   readkey;
 end;

var opc:char;

 begin
 Textmode(c80);
 REPEAT
 clrscr;
      textbackground(white);
      textcolor(red);GOTOXY(25,3);WRITE('
************INTERFAZ************');
      TEXTCOLOR(0);GOTOXY(34,4);WRITE('
     E IT     ');TEXTCOLOR(15);GOTOXY(40,4); WRITE('X');
      TEXTCOLOR(green);
      GOTOXY(1,5);WRITE('
É���������������������� EDUARDO ALEXANDER PEREZ CARRILLO ����������������������»');
      GOTOXY(1,6);WRITE('
º                                                                              º');
      GOTOXY(1,7);WRITE('
º                                                                              º');
      GOTOXY(1,8);WRITE('
º                                                                              º');
      GOTOXY(1,9);WRITE('
º                                                                              º');
      GOTOXY(1,10);WRITE('
È������������������������������������������������������������������������������¼');
  TEXTCOLOR(black);
  GOTOXY(11,6);WRITE('
Cr ar carpeta.¯¯¯¯¯¯¯¯¯¯¯¯¯¯Å');textcolor(red); gotoxy(13,6);write('e');textcolor(0);
  gotoxy(40,6);writeln('
®®®®®®®®®®®®®®  opiar archivos.');textcolor(red); gotoxy(55,6);write('C');textcolor(0);
  GOTOXY(9,7);WRITE('
C rtar archivos.¯¯¯¯¯¯¯¯¯¯¯¯¯¯Å'); textcolor(red); gotoxy(10,7);write('o');textcolor(0);
  gotoxy(40,7);writeln('
®®®®®®®®®®®®®®  enombrar archivos.'); textcolor(red); gotoxy(55,7);write('R');textcolor(0);
  gotoxy(8,8);write('
ezclar archivos.¯¯¯¯¯¯¯¯¯¯¯¯¯¯Å');  textcolor(red); gotoxy(8,8);write('M');textcolor(0);
  gotoxy(40,8);writeln('
®®®®®®®®®®®®®® El minar archivos.'); textcolor(red); gotoxy(57,8);write('i');textcolor(0);
  gotoxy(8,9); write('
®®®®®®®®®®®®®®®®®®®®®®®®  istar archivos ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯');
  textcolor(red); gotoxy(33,9);write('
L');textcolor(0);

 opc:=upcase(readkey);
 case opc of
 '
E':carpeta;
 '
C':copiar;
 '
O':cortar;
 '
R':renombre;
 '
I':eliminar;
 '
L':lista;
 '
M':mezcla;
  end;
 UNTIL(OPC='
X');
 end.
¿Ya le viste algún error? Dejanos tu correción ;-)

Antes de comentar: Gran parte de los ejercicios propuestos no tienen librerías debido a que Wordpress elimina los tags HTML. Si sabes/tienes/conoces las librerías que hacen falta, déjalo en los comentarios.

Otro punto antes de comentar, Si vas a sugerir un segmento de código en algún lenguaje debes hacerlo así:

De esta manera el código sale coloreado.

Otro punto importante para muchos que sienten que se les ignora: Todos los comentarios los reviso y en su debido momento los apruebo, pero ojo con el último párrafo.

Para poner los símbolos de las librerías sin que desaparezcan, debes escribir los símbolos de mayor > y menor qué < con su entidad HTML correspondiente, así como el símbolo de &

Mis Algoritmos se reserva el derecho de alterar, publicar o no los comentarios así como cambiar estas reglas de uso.

Si estas de acuerdo, adelante puedes comentar :)

P.D. No le hago tareas a nadie, mejor hagan la mía :P