Foros del Web » Programando para Internet » PHP »

Cargar lineas de un txt aleatoriamente en un texto dinámico

Estas en el tema de Cargar lineas de un txt aleatoriamente en un texto dinámico en el foro de PHP en Foros del Web. Hola: Necesito de su ayuda para resolver parte de un proyecto y soy principiante en el tema. La cuestion es la siguiente: Tengo un formulario ...
  #1 (permalink)  
Antiguo 30/12/2010, 16:32
 
Fecha de Ingreso: diciembre-2010
Mensajes: 16
Antigüedad: 13 años, 10 meses
Puntos: 0
Cargar lineas de un txt aleatoriamente en un texto dinámico

Hola: Necesito de su ayuda para resolver parte de un proyecto y soy principiante en el tema. La cuestion es la siguiente:
Tengo un formulario hecho en flash que permite a los usuarios dejar sus comentarios. Los mismo se guardan en un archivo txt. Los textos guardados en el arcivo .txt luego son cargados en un texto dinámico en otra pelicula flash. Hasta acá está todo funcionando. Pero lo que yo necesito hacer es que las lineas guardadas en el .txt se carguen aleatoriamente en el texto dinámico y no de forma secuencial como sucede hasta ahora. Para lo cual arme en php un contador de líneas, que espero esté bien hecho, segui un tutorial. Pero aun no logro que se carguen las lineas aleatoriamente.
Les paso las lineas de código que tengo hasta ahora para que me puedan indicar qué y cómo resolver este tema.

Carga de .txt en el texto dinámico de flash:

System.useCodepage = true;
var varcarga:LoadVars = new LoadVars();
varcarga.load("post.txt");
varcarga.onLoad = function(success) {
if (success) {
txtdetalle.text = this.vardetalle;
}
}

Contador de líneas en php. El nombre del archivo es total_post.php:

<?php
$archivo = fopen ("post.txt", "r");
$num_lineas = 0;
while (!feof ($archivo)) {
if ($linea = fgets($archivo)){
$num_lineas++;
}
}
fclose ($archivo);
echo " &lineas= " . $num_lineas. "&";
?>

En el archivo post.txt tengo al inicio la siguiente vaiable: vardetalle=


Desde ya muchisimas gracias por su ayuda.!!!
  #2 (permalink)  
Antiguo 31/12/2010, 02:31
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 14 años, 2 meses
Puntos: 331
Respuesta: Cargar lineas de un txt aleatoriamente en un texto dinámico

Hola d_, no entiendo bien el código PHP, pero entiendo que quieres leer un archivo y leer las líneas aleatoreamente, para eso te propongo este código:

Código PHP:
<?php
$array_archivo 
file("post.txt"); //$arrar_archivo tiene una elemento por linea de archivo
$array_archivo shuffle($array_archivo); //ahora lo mezclo aleatoreamente
$total_lineas count($array_archivo); //Total de lineas
print_r($array_archivo); //salida por pantalla
?>
Espero que sirva, si no, postea! Salu2
  #3 (permalink)  
Antiguo 01/01/2011, 12:00
 
Fecha de Ingreso: diciembre-2010
Mensajes: 16
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Cargar lineas de un txt aleatoriamente en un texto dinámico

Muchas gracias por contestar.
Entiendo el código que me mandaste. Pero aun no se como ponerlo en marcha y articularlo con flash. Te detallo lo que me gustaría que suceda para que me comprendas mejor.

Ej:En el archivo post.txt se guardaron tres líneas quedando el archivo de la siguiente manera:

vardetalle=
hola
chau
bienvenido

Yo quiero que cada vez que se duplique mi moive clip que contiene el texto dinámico las lineas se carguen aleatoriamente, por ejemplo:
En la primer duplicación que se lea

chau
bienvenida
hola

En la segunda duplicacion

hola
bienvenida
chau

Y así sucesivamente según la cantidad de lineas que se vayan guardando en el .txt
Según voy entendiendo, con el código php que me mandaste yo debería cambiar el código que estoy utilizando en flash para que funcione la lectura de las líneas aleatorias.
Decime si estoy en lo correcto.

El código flash de mi texto dinámico dice lo siguiente:

System.useCodepage = true;
var varcarga:LoadVars = new LoadVars();
varcarga.load("post.txt");
varcarga.onLoad = function(success) {
if (success) {
txtdetalle.text = this.vardetalle;
}
}


GRACIASPOR LA AYUDA Y BUEN COMIENZO DE AÑO!!!!!
  #4 (permalink)  
Antiguo 03/01/2011, 02:41
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 14 años, 2 meses
Puntos: 331
Respuesta: Cargar lineas de un txt aleatoriamente en un texto dinámico

No sé como funciona flash pero mi código y el tuyo juntos no pueden funcionar.
Por un lado, tu código:

Código PHP:
System.useCodepage true;
var 
varcarga:LoadVars = new LoadVars();
varcarga.load("post.txt");
varcarga.onLoad = function(success) {
if (
success) {
txtdetalle.text this.vardetalle;
}

por lo que veo, cargas el fichero post.txt y lo sacas por pantalla. El fichero siempre tiene la misma estructura.
Por otro lado mi código,
Código PHP:
<?php
$array_archivo 
file("post.txt"); //$arrar_archivo tiene una elemento por linea de archivo
$array_archivo shuffle($array_archivo); //ahora lo mezclo aleatoreamente
$total_lineas count($array_archivo); //Total de lineas
print_r($array_archivo); //salida por pantalla
?>
lee el archivo, lo carga en memoria y lo ordena aleatoremente SIEMPRE EN MEMORIA, cuando ejecutas el código flash, el archivo sigue siendo el mismo, no hay cambios.
Un solución intermedia es: leer el archivo, ordenarlo aleatoriamente, guardar el resultadeo en otro archivo, cargar este otro archivo en flash.
En PHP esto se hace así:

Código PHP:
<?php
error_reporting
(E_ALL);
ini_set("display_errors"1);
date_default_timezone_set("Europe/Madrid");

$array file("post.txt"); //Cargar las lineas del archivo

$fp fopen('temp.txt''w'); //Abrir el archivo temporal

shuffle($array); //Reordenar las lineas del archivo
foreach ($array as $value){ //Escribir las lineas en nuevo orden
fwrite($fp$value);
}
fclose($fp);

?>
Este código se ha de ejecutar siempre ANTES DEL FLASH y en tu código tienes que cargar el archivo temp.txt.
Después puedes borrarlo con unlink("temp.txt");

A ver si te sirve, saludos
  #5 (permalink)  
Antiguo 03/01/2011, 19:46
 
Fecha de Ingreso: diciembre-2010
Mensajes: 16
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Cargar lineas de un txt aleatoriamente en un texto dinámico

Muchas gracias por responderme. Hace dias que ando dando vueltas con esto. Y es lo último que me falta para terminar un proyecto. Voy a probar como me va con tu nueva sugerencia y te vuelvo a postear.
Lo que he conseguido en estos dias es un nuevo código en php que lo que hace es contar las lineas del txt y luego desde flash me las muestra aleatoriamente pero de a una linea por vez. Estuve cerca pero aun no resuelve mi inquietud. Bueno esta fue una pequeña catarsis ahora me voy a rabajar con tu código y despues te cuento. Saludos. Gracias, es bueno saber que en algún lado del planeta alguien responde a un pedido de ayuda, me hace pensar que el mundo no está tan podrido. Abrazo
  #6 (permalink)  
Antiguo 04/01/2011, 13:36
 
Fecha de Ingreso: diciembre-2010
Mensajes: 16
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Cargar lineas de un txt aleatoriamente en un texto dinámico

Bien!!! Tu código php funciona a la perfección. Aun no puedo llamar y mostrar el temp.txt desde flash. Pero voy por buen camino.
cuando tenga mas novedades te sigo contando.
saludos y mil gracias!1!!!
  #7 (permalink)  
Antiguo 04/01/2011, 18:44
 
Fecha de Ingreso: diciembre-2010
Mensajes: 16
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Cargar lineas de un txt aleatoriamente en un texto dinámico

Bueno, finalmente logré hacer que todo funcionara. Muchísimas gracias por tu ayuda!!!!!!!!!
Buen año!!!!
  #8 (permalink)  
Antiguo 05/01/2011, 02:29
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 14 años, 2 meses
Puntos: 331
Respuesta: Cargar lineas de un txt aleatoriamente en un texto dinámico

Bien, algo más que funciona, un saludo!

Etiquetas: .txt, aleatoria, carga, php-flash, txt
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:35.