Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    contare presenze di determinati valori nelle righe di un file txt...

    Es.. file txt:

    A,B,C,D,E,F
    A,G,H,F,I,L
    V,M,N,B,X,Z
    Q,R,T,S,V,A
    B,A,D,G,H,L

    ecc...

    vorrei attraverso apposito script PHP contare le presenze per ogni valore (A,B,C ecc..)
    in modo da avere qualcosa di questo tipo (seguendo l'es. postato)

    A = 3
    B = 3
    C = 1
    D = 2
    E = 1
    F = 2
    G = 2
    ecc...

    GRAZIE A CHIUNQUE MI ILLUMINA IN TAL SENSO MAGARI postandomi lo script PHP risolutore


  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    vedi se va bene
    Codice PHP:
    $file file('tuo_file');
    $str implode('',$file);
    preg_match_all("#[A-Z]#",$str,$out,PREG_PATTERN_ORDER);
    echo 
    '<pre>';
    print_r(array_count_values($out[0])); 

  3. #3
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    oppure...

    Codice PHP:
    <?

    // controlla  A-Z a-z
    $content=file_get_contents("test.txt");
    $out=array();
    for (
    $a=65;$a<=122;$a++)
    if (
    $a<=90 || $a >=97$out[chr($a)]=count(explode(chr($a),$content))-1;


    // controlla  A-Z
    $content=file_get_contents("test.txt");
    $out=array();
    for (
    $a=65;$a<=90;$a++) $out[chr($a)]=count(explode(chr($a),$content))-1;


    // controlla  a-z
    $content=file_get_contents("test.txt");
    $out=array();
    for (
    $a=97;$a<=122;$a++) $out[chr($a)]=count(explode(chr($a),$content))-1;



    echo 
    "<pre>";
    print_r($out); 
    ?>
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  4. #4
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    grazie mille ci sono quasi.. ma se invece di lettere fossero numeri?

    Originariamente inviato da nicola75ss
    vedi se va bene
    Codice PHP:
    $file file('tuo_file');
    $str implode('',$file);
    preg_match_all("#[A-Z]#",$str,$out,PREG_PATTERN_ORDER);
    echo 
    '<pre>';
    print_r(array_count_values($out[0])); 


    del tipo...

    46,36,49,12,70
    88,11,82,8,56
    80,90,71,76,75
    34,81,22,40,62
    79,40,74,62,60
    58,5,45,86,62
    48,79,80,34,86
    56,28,47,29,40
    25,74,23,37,9
    66,19,37,71,48
    25,35,26,21,47
    87,32,70,45,63
    45,32,41,75,20
    27,72,47,73,18
    78,7,71,17,31
    70,28,14,87,11


    come lo dovrei cambiare?
    Ho provato a mettere al posto di A-Z ---> 1-90
    ma non funge... o meglio mi conta solo le presenze di valori da 1 a 9 anche nei numeri composti... tipo 19 ecc...

    mentre io vorrei qualcosa del tipo:

    05-> presente 30 volte
    32-> presente 15 volte
    ecc...



    GRAZIE ANCORA




  5. #5
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Prova così allora
    codice:
    $filename = 'tuo_file';
    $handle = fopen($filename, 'r');
    $contents = fread($handle, filesize($filename));
    preg_match_all("#\d+#",trim($contents),$out,PREG_PATTERN_ORDER);
    sort($out[0]);
    echo '<pre>';
    print_r(array_count_values($out[0]));

  6. #6
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    funzia alla perfezioneee GRAZIE

    Per sdebitarmi...

    se giochi al lotto...

    18 (un eurino) su FI fino a fine agosto


    G O O D L U C K




    ps: Volendolo ulteriormente perfezionare.. ed evidenziare magari solo i numeri con presenza minore di 10 ad esempio.. come potrei fare? Ci ho provato ma nisba...

  7. #7
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Mai giocato al lotto, comunque grazie per il pensiero.

    Codice PHP:
    $freq array_count_values($out[0]);
    foreach (
    $freq as $k => $v) {
        if (
    $v 10)
            echo (
    $v == 1) ? "$k uscito $v volta 
    "$k uscito $v volte 
    "
    ;        


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.