Tema destacado: Suscripción al boletín mensual de elhacker.net
Autor
|
Tema: ejercicio Pascal, ayuda para terminarlo (Leído 2,209 veces)
|
manu3742
Desconectado
Mensajes: 20
|
NO veo por qué no sumas las líneas de este programa, me podeís ayudar.
Program contar;
var
c: char; fichero: text; url_archivo: string; lineas: integer; caracteres: integer;
begin url_archivo:='C:\contar.txt'; assign(fichero, url_archivo); reset(fichero); caracteres:=0; lineas:=0;
begin while not eof(fichero) do begin readln(fichero,c); caracteres:=caracteres+1; if not eof(fichero) then lineas:=lineas+1; readln(fichero); end;
end; writeln('El nombre del fichero es ', url_archivo); writeln('El numero de lineas es ',lineas); Writeln('El numero de letras es ',caracteres);
END.
|
|
|
|
|
En línea
|
|
|
|
|
|
manu3742
Desconectado
Mensajes: 20
|
Muchísimas gracias amigo.
saludos
|
|
|
|
|
En línea
|
|
|
|
manu3742
Desconectado
Mensajes: 20
|
lo he compilado pero no funciona
|
|
|
|
|
En línea
|
|
|
|
Khronos14
Desconectado
Mensajes: 285
A lie is a lie
|
Utiliza las etiquetas GeSHi para poner el código. program Project1; {$APPTYPE CONSOLE} uses SysUtils; var Text: TextFile; Buffer, Archivo: string; Lines: integer = 0; Size: integer = 0; begin {$I-} Archivo:= 'C:\prueba.txt'; AssignFile(Text, Archivo); FileMode:= 0; //ReadOnly Reset(Text); if IOResult = 0 then begin while not EOF(Text) do begin ReadLn(Text, Buffer); Inc(Lines); Size:= Size + Length(Buffer); end; CloseFile(Text); WriteLn('Numero de lineas: ', Lines); WriteLn('Numero de caracteres: ', Size); end else WriteLn('Se produjo un error abriendo el archivo: ', Archivo); {$I+} Readln; end. Está hecho en Delphi pero debería funcionar en FreePascal. Las directivas {$I-} y {$I+} son para controlar los errores de tipo Input/Output. Si la función IOResult() devuelve 0 es que el archivo se abrió con éxito. FileMode es una variable de Delphi que establece el modo de apertura de un archivo, por defecto, se abren los archivos en modo lectura y escritura, el 0 es modo lectura. Saludos.
|
|
|
|
|
En línea
|
|
|
|
manu3742
Desconectado
Mensajes: 20
|
Perdona , pero sino me lo pones en Pascal me pierdo, es que estoy empezando..
saludos
|
|
|
|
|
En línea
|
|
|
|
Khronos14
Desconectado
Mensajes: 285
A lie is a lie
|
Delphi es Object Pascal, si te fijas la sintaxis del código que te puse es idéntica a la de tu código. Prueba a compilarlo en FreePascal y pregunta las dudas que tengas  Saludos.
|
|
|
|
|
En línea
|
|
|
|
manu3742
Desconectado
Mensajes: 20
|
La cuestión es que tengo que enviar el ejercicio con el código Pascal. en el momento se me identifique con Delhi que es el proximo xurso que voy a hacer me dice que no lo acepta
|
|
|
|
|
En línea
|
|
|
|
Khronos14
Desconectado
Mensajes: 285
A lie is a lie
|
manu3742, te estoy diciendo que Delphi es Pascal jajaja
Delphi es un compilador que utiliza el lenguaje de programación Object Pascal, creas un archivo con la extensión .pas, le pones el código y lo compilas con FreePascal y listo.
|
|
|
|
|
En línea
|
|
|
|
manu3742
Desconectado
Mensajes: 20
|
no te enfades que me esta costando un mundo el curso de trabajo y lo hago a ratos . Es que no utilizo el FreePascal , utilizo el Notepad ++ como editor del curso por eso el código que me has mandado no lo compila.
|
|
|
|
|
En línea
|
|
|
|
Khronos14
Desconectado
Mensajes: 285
A lie is a lie
|
No puedes utilizar Notepad++ para programar en Pascal, tienes que utilizar un compilador. Lazarus es un entorno de desarrollo para Object Pascal (Pascal) y usa como compilador FreePascal.
La otra opción es Delphi, pero es de pago.
|
|
|
|
|
En línea
|
|
|
|
Leo Gutiérrez.
. . .. ... ..... ........ ............. .....................
Colaborador
 
Desconectado
Mensajes: 2.968
/^$/
|
no te enfades que me esta costando un mundo el curso de trabajo y lo hago a ratos . Es que no utilizo el FreePascal , utilizo el Notepad ++ como editor del curso por eso el código que me has mandado no lo compila.
¡¡¡Porque Notepad++ no es un compilador!!! Haz el esfuerzo, consigue un compilador de pascal y prueba el código, quieres todo a la mano.
|
|
|
|
|
En línea
|
|
|
|
manu3742
Desconectado
Mensajes: 20
|
Leo, no quiero todo a la mano, la cuestion es que si uno no ha visto utilizar un determinado codigo pues no lo ves en la vida aunque te estudies el tema 1000 veces.
Por que no sumaba los caracteres? yo ponía esta línea
num_caracteres:=num_caracteres+1;
pero correctamente expresada es: NINGUNO DE LOS QUE ME HABEIS CONTESTADO A HABEIS ACERTADO. YO OS ESTOY MUY AGRADECIDO QUE CONSTE. PERO ESTA LÍNEA NADIE, NI EN UNA DECADA DOY CON ELLA, GRACIAS A GRAN COMPAÑERO QUE ME LA HA DADO. GRACIAS num_caracteres:=num_caracteres+ord(linea[0]);
EL CÓDIGO EXACTO DE TODO EL PROGRAMA ES:
Program contar; (*CONSTANTES DEL PROGRAMA, EL TAMAÑO MÁXIMO DE LA LÍNEA Y DEL NOMBRE DEL FICHERO*) const TAMMAX=40;
var
linea: string ; fichero: text; url_archivo: string; num_lineas: integer; num_caracteres: integer;
begin url_archivo:='C:\contar.txt'; assign(fichero, url_archivo); reset(fichero); (*SE INICIALIZAN LOS CONTADORES*) num_caracteres:=0; num_lineas:=0;
begin (*SE LEE LINEA A LINEA EL FICHERO, PARA CADA UNA SE ACTUALIZA CONTADOR DE LÍNEAS SUMANDO 1 Y CONTADOR DE CARACTERES SUMANDO EL TAMAÑO DE LA LÍNEA*) while not eof(fichero) do begin readln(fichero, linea); num_lineas:=num_lineas+1; num_caracteres:=num_caracteres+ord(linea[0]); end; close (fichero);
end; writeln('Nombre del fichero'); readln(url_archivo);
writeln('El numero de lineas es ',num_lineas); Writeln('El numero de caracteres es ',num_caracteres);
END.
|
|
|
|
|
En línea
|
|
|
|
manu3742
Desconectado
Mensajes: 20
|
Una línea me ha sobrado para acabar correctamente el programa.
gracias a todos los que habeis contestado, espero seguir contando con vosotros.
saludos
|
|
|
|
|
En línea
|
|
|
|
Edu
Desconectado
Mensajes: 1.082
Ex XXX-ZERO-XXX
|
Pone los codigos dentro de las etiquetas
|
|
|
|
|
En línea
|
|
|
|
|
|