Interfaz de manejo de archivos

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.
 

¿Has encontrado algún error? ¿Tienes la solución? Dejame tu correción ;-)

Antes de comentar: Gran parte de los ejercicios propuestos no tienen librerías debido a que Wordpress las eliminó al verlas como etiquetas HTML. Si sabes/tienes/conoces las librerías que hacen falta, déjalo en los comentarios. Y lo mas importante: Todos los ejemplos fueron realizados por personas con únicamente conocimiento básico del lenguaje, no de programación.

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

  • Si es lenguaje C [c]Código en C[/c]
  • Si es lenguaje Pascal [pascal]Aquí dentro el código de Pascal[/pascal].

De esta manera el código coloreas el código.

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 con lo siguiente:

Me reservo el derecho de alterar, publicar o no los comentarios as´ como cambiar mis condiciones en el momento que así lo requiera.

¿estas de acuerdo? entonces adelante que ya te he quitado bastante tiempo leyendo esta basura de advertencias :)