SoloCodigo

Programación General => Pascal => Mensaje iniciado por: grillo76 en Miércoles 24 de Marzo de 2010, 20:30

Título: problema con este codigo
Publicado por: grillo76 en Miércoles 24 de Marzo de 2010, 20:30
Hola, tengo un problema con este programa:
me pide realizar un programa que abra un fichero de texto para lectura, y lo vaya leyendo línea a línea. Deberá presentar como resultado final el nombre del fichero, el número de líneas y el número de caracteres.
esto es lo que yo he hecho pero me da errores.Me lo puede corregir alguien.
Un saludo

program contar;
type
tfichero=tex;
var
lineas:integer;
caracteres:integer;
suma:integer;
fichero :tfichero;

begin
writeln('Nombre fichero de origen: ');
readln(fichero);

repeat
begin
readln(fichero);
lineas:=lineas+1;
end;
until (eof(fichero));
close(fichero);
reset(fichero);
while not eof(fichero) do
begin
while not eoln(fichero) do
begin
read(fichero,caracteres);
suma:=suma+1;
end;
if eoln(fichero)then readln(fichero);
end;
writeln('>',lineas,' lineas y ',suma, 'caracteres.');
close (fichero);
end.
Título: Re: problema con este codigo
Publicado por: DriverOp en Jueves 25 de Marzo de 2010, 01:44
Los problemas son varios.

- "tex" no es un tipo de dato Pascal.
- No estás asignando el nombre físico del archivo al nombre lógico (llamada al provedimiento Assign();).
- No estás abriendo el archivo en modo lectura (llamada al procedimiento reset();) antes de comenzar a leer.
- No estás verificando que el archivo exista (el usuario podría ingresar cualquier cosa como nombre de archivo físico).

Hay un par más pero son de lógica. Primero atiende los que he señalado.