Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Lazarus, FreePascal, Kylix, etc. (https://www.clubdelphi.com/foros/forumdisplay.php?f=14)
-   -   Ficheros en pascal (https://www.clubdelphi.com/foros/showthread.php?t=53783)

D.M.Nieto 29-02-2008 15:37:59

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.

rretamar 01-03-2008 17:27:44

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