Ver Mensaje Individual
  #4 (permalink)  
Antiguo 26/05/2012, 00:29
Avatar de Nemutagk
Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 1 mes
Puntos: 406
Respuesta: Ejecutar pedazos de codigo en lote

mmmm probablemente sea mas "optimo" guardar los items en un arreglo y luego trabajar con ellos, te dejo un ejemplo...

Código PHP:
Ver original
  1. $pag = isset($_GET['pag']) ? $_GET['pag'] : 1;
  2. $numItem = 0;
  3. $numItemStart = ($pag - 1) * 20; //20 es el numero de items o lineas con las que trabajaremos...
  4. $numItemsEnds = $numItemsStart + 20;
  5. $items = array();
  6. $archivo = fopen('archivo.txt','r');
  7. while (!feof($archivo)) {
  8.      $linea = fgets($archivo);
  9.      if ($numItem > $numItemStart && $numItem <= $numItemEnds) {
  10.           $items[] = $linea;
  11.      }else if ($numItem > $numItemsEnds) {
  12.           break;
  13.      }
  14. }
  15. fclose($archivo);
  16.  
  17. //ahora trabajamos con los items...
  18. foreach($items as $item) {
  19.      echo $n, " -> ", trim(substr($linea, -17, 13)), "<br>";
  20.     trim(substr($linea, -17, 3)) != "B" ? $isbn[] = trim(substr($linea, -17, 13)) : $asin[] = trim(substr($linea, -17, 13));
  21. }

aunque sinceramente no se que tanta diferencia va a ver, el problema te repito es el recorrer el archivo original hasta llegar al item (linea) correspondiente...

PD: me quede intrigado y he hecho pruebas, y por lo que veo trabaja muy bien, generé un archivo con 60,000 lineas y en bloques de 20 items (lineas) trabaja muy bien, obtener items dentro del rango 15000 al 15020 solo tarda 0.0314 microsegundos...
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)

Última edición por Nemutagk; 26/05/2012 a las 00:37