![]() |
Ficheros en pascal
Hola buenas tardes, lo primero comentar que no se si hago bien en abrir nuevo hilo o debería seguir con el otro que abrí, aclarármelo por favor. La cosa es que estoy aciendo un ejercicio que me pide hacer un programa que haga una copia de seguridad de un
archivo de texto en uno con tipo (file of char). Para ello debo utilizar el carácter % para indicar en este fichero el fin de línea del fichero de texto.Además el programa debe preguntar al usuario el nombre del fichero a copiar y el de la copia a generar. Posteriormente, el programa debe ser capaz de mostrar por pantalla el fichero con tipo como originalmente estaba el de texto. Se puede presentar un menú de opciones. Yo lo tengo mas o menos hecho pero me da un error que dice que no puedo mezclar tipo char y string. Aquí os pongo el código por si os ocurre algo, graciasss saluudoss uses SysUtils; procedure mostrarMenu; //Este procedimiento o subprograma aparece tras introducir los tiempos y cada vez //que elegimos una opción de las que nos propone y esta finaliza vuelve a aparecer begin writeln ('*************** COPIAS DE SEGURIDAD ********************'); writeln; writeln (' 0.- Para volver a mostrar menu'); writeln; writeln (' 1.- Crear fichero.'); writeln; writeln (' 2.- Hacer una copia de seguridad.'); writeln; writeln (' 3.- Generar por pantalla.'); writeln; writeln ('Introduzca una opcion < numero del 1 al 4 > y pulse intro: '); end; procedure hacercopia(var f:text); var nombre2,nombre:string; d:FILE of char; v:string[1]; x:char; begin writeln('Introduzca el nombre del arcivo a copiar'); readln(nombre); writeln('Introduzca el nombre del fichero que desea generar'); readln(nombre2); assignfile (d,nombre2); rewrite(d); assignfile (f,nombre); {$I-} reset(f); {$I+} if ioResult=0 then begin while (not (eoln(f))) do begin read(f,v); write(d,x); end; close(f); end; end; procedure generar(var f:text;var nombre2:string); begin {$I-} reset(f); {$I+} if ioResult=0 then end; Const OpcionesMaximas=2;//ya que la opcion maxima es 4 var opcion:integer; nombre,nombre2:string; f:text; texto:string; v:string[1]; begin mostrarMenu; repeat writeln; repeat write ('Introduzca una opcion valida < 0 para mostrar menu > '); readln (opcion); case opcion of 0:mostrarMenu; 2:hacercopia(f); 3:generar(f,nombre2); end until (opcion>=0) or (opcion<OpcionesMaximas); until //si la opcion elegida es 4 ha elegido salir. opcion=OpcionesMaximas; writeln (' Pulse INTRO para Finalizar ');//Se finaliza el programa readln; end. |
Hola.
Cuando creas o editas un mensaje en el foro, hay unas marcas llamadas "Code" que permiten que el programa sea más legible (tamaño de letra apropiado "proporcional" y por ende conservando la intentación). De esa forma se hace más fácil poder leer el código por los demás. Saludos ! |
La franja horaria es GMT +2. Ahora son las 23:36:19. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi