Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: JuanMontaña en 06 de Febrero 2015, 18:47

Título: Ejercicio CU00836B ejemplos funciones en php leer y escribir datos a archivos
Publicado por: JuanMontaña en 06 de Febrero 2015, 18:47
La verdad es que no se como llevar a cabo los ejercicios propuestos en la entrega CU00836B del curso, he visto ejemplos pero son ejecutados con formularios al decir el ejercicio que con funciones quede algo loco y lo sierto es que no se ni como empezar a desarrollarlos
Título: Re:(CU00836B) tengo problemas con la leccion
Publicado por: Mario R. Rancel en 06 de Febrero 2015, 20:34
Hola, empieza por realizar el apartado a).

Crea las siguientes funciones en PHP:

a) Una función (tipo procedimiento, no hay valor devuelto) denominada escribirTresNumeros que reciba tres números enteros como parámetros y proceda a escribir dichos números en tres líneas en un archivo denominado datosEjercicio.txt. Si el archivo no existe, debe crearlo.

Para realizarlo tienes que repasar:

- El concepto de función y parámetros que recibe una función, que se ve en la entrega CU00827B. Fíjate en esta entrega en ejemplo1.php cómo se declara la función y cómo se llama después para probarla.

- La apertura y escritura de archivos que se ve en la entrega CU00836B


Puedes probar antes de hacer apertura y escritura en archivo a mostrar lo que se debería escribir en archivo por pantalla, así vas paso a paso.

Saludos.
Título: Re:(CU00836B) tengo problemas con la leccion
Publicado por: JuanMontaña en 10 de Febrero 2015, 04:05
a) Una función (tipo procedimiento, no hay valor devuelto) denominada escribirTresNumeros que reciba tres números enteros como parámetros y proceda a escribir dichos números en tres líneas en un archivo denominado datosEjercicio.txt. Si el archivo no existe, debe crearlo.

Código: [Seleccionar]
<?php

function escribirTresNumeros($num1,$num2,$num3){

echo 'Que comience la funcion<BR/><BR/>Se han escrito los numeros:<BR/><BR/>';
echo $num1.'<BR/>';
echo $num2.'<BR/>';
echo $num3.'<BR/>';


$fp fopen("datosEjercicioA.txt""a");
fputs($fp,$num1."\n".$num2."\n".$num3."\n"); 
fclose($fp);


}

escribirTresNumeros(1000,2000,3000);



?>

Buenas... muchisimas garcias por su respuesta este es el codigo del primer ejercicio la verdad no se sie ste bien.
El tema me ha parecido un poco duro se me dificulto pero ya creo estar entendiendolo aunque la verdad es que en la leccion no muestran ningun ejemplo del tipo de los ejercicios.

debido a esto el segundo ya se me dificulto bastante ya intente

b) Una función denominada obtenerSuma (tipo función, devolverá un valor numérico) que reciba una ruta de archivo como parámetro, lea los números existentes en cada línea del archivo, y devuelva la suma de todos esos números.

Código: [Seleccionar]
<?php
function obtenersuma(rutadearchivo.txt)
{  
$tmp='rutadearchivo.txt';
return $tmp;

$fp fopen("rutadearchivo.txt""r+");
     
$fp2 fgets($fp);
    
fclose($fp);  
}
echo 
"<BR/>La sumatoria de los datos es" obtenersuma('rutadearchivo.txt');
?>


yo sse que este codigo esta de locos y pido disculpas la verdad lo he modificado tantas veces tratando en estos momentos estoy ya exhausto porfavor pido su orientacion

muchisimas garcias por su ayuda. hasta luego
Título: Re:Ejercicio CU00836B ejemplos funciones en php leer y escribir datos a archivos
Publicado por: Mario R. Rancel en 10 de Febrero 2015, 08:28
Hola, el código del apartado a) está correcto, aunque fíjate que al hacer la apertura en modo a:

$fp = fopen("datosEjercicioA.txt", "a");

 cada vez que ejecutes el código se van a escribir nuevas líneas. Si en vez de escribir nuevas líneas queremos que se reescriba el archivo lo haríamos abriendo en modo w por ejemplo:

$fp = fopen("datosEjercicioA.txt", "w");

El código del apartado b) tiene varios fallos, en algunos casos fallan los conceptos vistos en temas previos del curso que te recomiendo repases.

function obtenersuma(rutadearchivo.txt) está mal escrito, tienes que escribir function obtenerSuma($rutadearchivo)

Además tienes un return y después del return ya no tiene sentido que incluyas más código, el return se pone al final de una función para devolver un resultado.

El código para el apartado b) tendría que ser este (o similar, puedes adaptarlo):

Código: [Seleccionar]
<?php
function obtenerSuma($rutadearchivo) {  
$sumatorio 0;
$fp fopen($rutadearchivo"r");
    
$i 0;
while(!feof($fp)) {
$linea fgets($fp);
$sumatorio $sumatorio+$linea;
if (!feof($fp)) {echo 'El dato leido en la linea '.$i' es '.$linea ' y el sumatorio por ahora vale '.$sumatorio.'<br />';}
$i=$i+1;

    
fclose($fp);  
return $sumatorio;
}
echo 
"<BR/>La sumatoria de los datos en el archivo datosEjercicioA es: " obtenerSuma('datosEjercicioA.txt');
?>

Tienes que repasar todo lo que hace este código según lo explicado en el curso y entenderlo paso a paso para poder seguir avanzando.

Saludos
Título: Re:Ejercicio CU00836B ejemplos funciones en php leer y escribir datos a archivos
Publicado por: JuanMontaña en 11 de Febrero 2015, 02:54
Buenas.

Muchísimas gracias Mario por tu ayuda. Aqui esta el codigo del punto c)

c) Una función denominada obtenerArrNum (tipo función, devolverá un array de valores numéricos) que reciba una ruta de archivo como parámetro, lea los números existentes en cada línea del archivo, y devuelva un array cuyo índice 0 contendrá el número existente en la primera línea, cuyo índice 1 contendrá el número existente en la segunda línea y así sucesivamente.

Código: [Seleccionar]
<?php
function obtenerArray($rutadearchivo) {  
$miarray = array();

$fp fopen($rutadearchivo"r");
    $i 0;
while(!feof($fp)) {
   

$miarray[$i] = fgets($fp);

$i=$i+1;

    
fclose($fp);  
return $miarray;
}
$miNuevoArray obtenerArray('rutadearchivo.txt');

echo 
$miNuevoArray[0].'<BR/>'.'<BR/>';
echo 
$miNuevoArray[1].'<BR/>'.'<BR/>';
echo 
$miNuevoArray[2].'<BR/>'.'<BR/>';
echo 
$miNuevoArray[3].'<BR/>'.'<BR/>';

?>




¿Está correcto?
Título: Re:Ejercicio CU00836B ejemplos funciones en php leer y escribir datos a archivos
Publicado por: JuanMontaña en 11 de Febrero 2015, 04:17
y aqui esta el ultimo si estan correctos?.. muchas gracias

d) Crea código php donde a través de la función escribirTresNumeros escribas en el fichero los números 2, 8, 14. Luego, mediante la función obtenerSuma muestra por pantalla el resultado de sumar los números existentes en el archivo. Finalmente, mediante la función obtenerArrNum obtén el array, recórrelo y muestra cada uno de los elementos del array.

Código: [Seleccionar]
<?php

function escribirTresNumeros($num1,$num2,$num3){

echo 'Que comience la funcion<BR/><BR/>Se han escrito los numeros:<BR/><BR/>';
echo $num1.'<BR/>';
echo $num2.'<BR/>';
echo $num3.'<BR/>';


$fp fopen("ejercicio4.txt""w");
fputs($fp,$num1."\n".$num2."\n".$num3."\n"); 
fclose($fp);


}

escribirTresNumeros(2,8,14);


function 
obtenerSuma($ejercicio4) {  
$sumatorio 0;
$fp fopen($ejercicio4"r");
    
$i 0;
while(!feof($fp)) {
$linea fgets($fp);
$sumatorio $sumatorio+$linea;
if (!feof($fp)) {echo 'El dato leido en la linea '.$i' es '.$linea ' y el sumatorio por ahora vale '.$sumatorio.'<br />';}
$i=$i+1;

    
fclose($fp);  
return $sumatorio;
}
echo 
"<BR/>La sumatoria de los datos en el archivo datosEjercicioA es: " obtenerSuma('ejercicio4.txt')."<BR/>";


function 
obtenerArray($ejercicio4) {  
$miarray = array();

$fp fopen($ejercicio4"r");
    $i 0;
while(!feof($fp)) {
   

$miarray[$i] = fgets($fp);

$i=$i+1;

    
fclose($fp);  
return $miarray;
}
$miNuevoArray obtenerArray('ejercicio4.txt');

echo 
$miNuevoArray[0].'<BR/>'.'<BR/>';
echo 
$miNuevoArray[1].'<BR/>'.'<BR/>';
echo 
$miNuevoArray[2].'<BR/>'.'<BR/>';
echo 
$miNuevoArray[3].'<BR/>'.'<BR/>';

?>

Título: Re:Ejercicio CU00836B ejemplos funciones en php leer y escribir datos a archivos
Publicado por: Mario R. Rancel en 11 de Febrero 2015, 17:16
Hola, el apartado c) está correcto, pero para recorrer un array siempre es recomendable usar un bucle, no hacerlo "a mano". El código quedaría así:

Código: [Seleccionar]
<?php
function obtenerArray($rutadearchivo) {  
$miarray = array();
$fp fopen($rutadearchivo"r");
$i 0;
while(!feof($fp)) {
   
$miarray[$i] = fgets($fp);
$i=$i+1;

    
fclose($fp);  
return $miarray;
}
$miNuevoArray obtenerArray('datosEjercicioA.txt');
for (
$j=0$j count($miNuevoArray); $j++){
echo 
$miNuevoArray[$j].'<br/>'.'<br/>';
}
?>
Título: Re:Ejercicio CU00836B ejemplos funciones en php leer y escribir datos a archivos
Publicado por: Mario R. Rancel en 11 de Febrero 2015, 17:27
El apartado c) también está correcto aunque te haría algunas recomendaciones:

Mantén todas las funciones agrupadas (por ejemplo al principio del archivo) y el código escríbelo después. Sería como esto:

Código: [Seleccionar]
<?php
function escribirTresNumeros($num1,$num2,$num3){
echo 'Que comience la funcion<BR/><BR/>Se han escrito los numeros:<BR/>';
echo $num1.'<BR/>';
echo $num2.'<BR/>';
echo $num3.'<BR/>';
$fp fopen("ejercicio4.txt""w");
fputs($fp,$num1."\n".$num2."\n".$num3."\n"); 
fclose($fp);
}

function 
obtenerSuma($ejercicio4) {  
$sumatorio 0;
$fp fopen($ejercicio4"r");
    
$i 0;
while(!feof($fp)) {
$linea fgets($fp);
$sumatorio $sumatorio+$linea;
if (!feof($fp)) {echo 'El dato leido en la linea '.$i' es '.$linea ' y el sumatorio por ahora vale '.$sumatorio.'<br />';}
$i=$i+1;

    
fclose($fp);  
return $sumatorio;
}

function 
obtenerArray($ejercicio4) {  
$miarray = array();
$fp fopen($ejercicio4"r");
$i 0;
while(!feof($fp)) {
$miarray[$i] = fgets($fp);
$i=$i+1;

    
fclose($fp);  
return $miarray;
}
escribirTresNumeros(2,8,14);
echo 
"<BR/>La sumatoria de los datos en el archivo datosEjercicioA es: " obtenerSuma('ejercicio4.txt')."<br/><br/>";
$miNuevoArray obtenerArray('ejercicio4.txt');
for (
$j=0$j count($miNuevoArray); $j++){
echo 
$miNuevoArray[$j].'<br/>';
}
?>

Otra recomendación es que sacaras las instrucciones echo fuera de todas las funciones (llevarlas a la parte final donde escribes el código), es decir, una función que escribe a un archivo debe limitarse a esto, no debe mostrar nada por pantalla, lo mismo si suma datos y devuelve la suma, debe limitarse a devolver la suma. Ahora mismo no pasa nada, pero sería bueno que vayas acostumbrándote a mantener buenas prácticas y buena ordenación del código.

Saludos y adelante
Título: Re:Ejercicio CU00836B ejemplos funciones en php leer y escribir datos a archivos
Publicado por: JuanMontaña en 12 de Febrero 2015, 00:09
ok mario muchisimas gracias por tus consejos y ayuda.