Autor Tema: PHP leer datos desde archivo fopen fgets fclose feof ejercicio CU00836B  (Leído 2733 veces)

Jonathan Ramos

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 15
    • Ver Perfil
Respuesta al apartado b) del ejercicio CU00836B del curso php desde cero.

Aqui esta la función para obtener la suma, me tarde en poder encontrar una forma para validar que los valores fueran numeros. ctype_digit no me daba los valores esperados.

Código: [Seleccionar]
<?php
// Funcion que busca el fichero asignado y suma los elementos numericos. Devuelve error en caso contrario
// Coded by: Jonathan Ramos, jonathanramos@gmail.com.

function obtenerSuma($ruta){
$suma 0;
$aux 0;
//Se revisa si existe el archivo
// Esto puede hacerse tambien asi
// $fp = fopen($ruta,"r")
// or exit("ERROR!. No se puede encontrar el archivo ($ruta)")
if (file_exists ($ruta) ){ 
$fp fopen($ruta,"r"); // Asignamos el archivo al file pointer
while( !feof($fp) ){ // Se leen los los numeros del archivo
$aux fgets($fp); // Se obtiene la linea del archivo
//Checamos si es un numero con preg_match. Intente usar ctype_digit pero no validaba correctamente
// if( ctype_digit($aux) ){ no funciono
if( preg_match("/^[0-9]+$/",$aux) ){ 
$suma += $aux;
} else {
echo "ERROR! Se encontro un valor NO numerico, no se puede realizar la suma. ";
fclose($fp);
return 0;
}
}
fclose($fp);
return $suma;
} else {
echo "ERROR!. No se puede encontrar el archivo: ".$ruta;
return 0;
}
}
?>

A continuación el codigo que llama a la función:

Código: [Seleccionar]
<?php
// Lectura de datos numericos de un archivo para realizar una suma.
// Coded by: Jonathan Ramos, jonathanramos@gmail.com.
$ruta "datos_suma.txt";
include 
'obtenerSuma.php';
echo (
'Suma de los datos encontrados en archivo "'.$ruta.'". Dichos datos deben estar en uno en cada linea.<br/>');
echo (
'El resultado de la suma es:'.obtenerSuma($ruta) );
?>


Aqui esta la pagina mostrando como funciona el codigo: http://utilities.byethost3.com/cursoPHP/archivo_ejercicio2.php
« Última modificación: 21 de Febrero 2016, 18:57 por Alex Rodríguez »

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Re:PHP leer datos desde archivo fopen fgets fclose feof ejercicio CU00836B
« Respuesta #1 en: 21 de Febrero 2016, 19:01 »
Hola Jonathan, el código es correcto

Para poder localizar los ejercicios y poder revisarlos otras personas es importante incluir en el título del tema del foro el código del ejercicio, en este caso CU00836B, junto con las sentencias principales que se usan, en este caso fopen, etc. esto facilita todo.

También es de interés que se incluya todo el código que constituye la respuesta a los ejercicios y a todos los puntos del ejercicio, de ese modo se puede revisar punto por punto sin tener que estar saltando.

Esto permite también comparar cómo ha resuelto un ejercicio (completo) con cómo lo ha resuelto otra persona (completo) y poder extraer buenas ideas de los ejercicios resueltos por distintas personas

Saludos

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".