Foros del Web » Programando para Internet » PHP »

contar lineas en archivo .txt

Estas en el tema de contar lineas en archivo .txt en el foro de PHP en Foros del Web. Holas, alguien me podria decir una manera de contar unas lineas especificas en un archivo .txt?. Por ejemplo Si tengo dentro del archivo: Perro Gato ...
  #1 (permalink)  
Antiguo 25/02/2004, 10:43
 
Fecha de Ingreso: febrero-2004
Mensajes: 13
Antigüedad: 20 años, 2 meses
Puntos: 0
contar lineas en archivo .txt

Holas, alguien me podria decir una manera de contar unas lineas especificas en un archivo .txt?. Por ejemplo
Si tengo dentro del archivo:

Perro
Gato
Vaca
Gato
Raton

Me gustaria saber como puedo contar los gatos k hay en ese archivo.
Gracias.
  #2 (permalink)  
Antiguo 25/02/2004, 11:33
Avatar de payo22  
Fecha de Ingreso: noviembre-2002
Ubicación: México
Mensajes: 839
Antigüedad: 21 años, 5 meses
Puntos: 1
Código PHP:
$contador 0;

$archivo fopen("archivo","r")
while (!
feof($archivo)){
     
$contador++;
}

echo 
"el numero de lineas es ".$contador."/n"
espero te ayude en algo.
  #3 (permalink)  
Antiguo 25/02/2004, 11:41
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 22 años, 3 meses
Puntos: 5
Un solo paso...

Código PHP:
echo "el numero de lineas es ".count(file("archivo.txt"))."/n"
__________________
Manoloweb
  #4 (permalink)  
Antiguo 25/02/2004, 13:00
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Señores, hay que leer mejor las preguntas
Cita:
Me gustaria saber como puedo contar los gatos k hay en ese archivo.
No quiere saber el numero total de lineas, sino cuantas lineas tienen un valor concreto.

Gracias a PHP que hay funciones para todo. Combinando el file() (www.php.net/file) con array_count_values() (www.php.net/array_count_values) puedes conseguir un array que te de la salucion a tus problemas.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #5 (permalink)  
Antiguo 25/02/2004, 13:43
Avatar de payo22  
Fecha de Ingreso: noviembre-2002
Ubicación: México
Mensajes: 839
Antigüedad: 21 años, 5 meses
Puntos: 1
uppps tienes razon josemi

mil disculpas dabelo
  #6 (permalink)  
Antiguo 25/02/2004, 13:57
 
Fecha de Ingreso: febrero-2004
Mensajes: 13
Antigüedad: 20 años, 2 meses
Puntos: 0
De acuerdo Woow!!

Estoy gratamente sorprendido, por la rapidez y la seriosidad, en que habeis respondido mi pregunta, gracias a todos.
  #7 (permalink)  
Antiguo 26/02/2004, 06:34
 
Fecha de Ingreso: febrero-2004
Mensajes: 13
Antigüedad: 20 años, 2 meses
Puntos: 0
Aun tengo un problema... :,(

Supongamos que en el txt tengo:

Gato
Perro
Gato
Vaca
Raton
Tigre
Gato
Chucho

Cuando hago la funcion array_count_value
me los agrupa y cuenta,
[Gato]=>3 [Perro]=>1 etc...

Si hago la funcion count me contara 6 (que son los grupos que hace,), pero como puedo sacar del array_count_value solo el numero de Gatos?

Código PHP:
<?
$lines 
file('prueba.txt');
$animaltotal = (array_count_values($lines));
$gatototal=count($animaltotal);
echo 
'numero de gatos es'.$gatototal
?>
Se que esta mal el php de arriba y k no tengo declarada la variable gatos, pero no se como hacer para que solo me cuente los gatos....

PD: no estoy haciendo un censo de gatos :D:D:D
  #8 (permalink)  
Antiguo 26/02/2004, 06:48
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

No tienes que hacer el count(), simplemente sacar el valor del elemento que quieres contar. Asi, el numero de gatos es:
Código PHP:
<?

$lines 
file('prueba.txt');

$animaltotal = (array_count_values($lines));

$gatototal=$animaltotal['Gato'];

echo 
'numero de gatos es'.$gatototal

?>
Saludos.

PD: Bien, es cierto, este script te calcula la cuenta de todos los tipos de lineas. Si lo que quieres es solo contar un tipo de lineas, podrias intentar algo con array_reduce() (www.php.net/array_reduce). Seria algo como el ejemplo de la suma, solo que irias sumando uno al total solo si el valor el igual al tipo de linea.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 18:02.