• User Attivo

    Che cosa ottieni se inserisci questo codice prima del commento * converto i gradi in quadranti ?

    *[php]var_dump($gradi);[/php]


  • User

    [..]

    Ciao......
    grazie per la risposta 🙂

    Mi mostra i dati che preleva dal file con echo $parts[14];

    e mi mostra un NULL, ma rimane sempre fisso su NNE.

    Questo è quanto leggo a video:

    66NULL Quadrante:NNE

    Sembra quasi che non consideri i dati esplosi :bho:


  • User Attivo

    Potresti, per favore, postare il risultato del codice che ti è stato indicato, esattamente come viene visualizzato nel browser?


  • User

    58NULL Quadrante:NNE

    Lo script gira, sul browser non mi da cod di errore, solo che non mi converte. :mmm:


  • User Attivo

    Che cosa restituisce questo codice?

    [php]<?php
    error_reporting(E_ALL);
    ini_set('display_errors', 1);
    // apro il file sul server *.txt
    $file_handle = fopen("m22.txt", "rb");
    var_dump($file_handle);
    // lo leggo sino alla fine
    while (!feof($file_handle) ) {
    $line_of_text = fgets($file_handle);
    // esplodo il file di testo utilizzando il separatore |
    $parts = explode('|', $line_of_text);
    // stampo a video il valore dei gradi Nord letti dal file
    echo $parts[14];
    $gradi = $parts[14];
    var_dump($gradi);
    var_dump($parts[14]);
    die('DONE');
    }
    die('HERE');
    ?>[/php]


  • User

    Ho provato a far un nuovo file e metterci dentro il cod che mi hai postato.......... il risultato è che a video mi restituisce questi valori.

    resource(2) of type (stream) 54string(2) "54" string(2) "54" DONE

    Io dietro all'altro ci son già mezzo uscito di testa, sicuramente poi e' una solita scemata... :mmm:

    Come avevo già detto prima se il valore lo metto a mano funziona

    $gradi = "182";

    mi dice il giusto quadrante ossia SSW

    bye


  • User Attivo

    Che cosa restituisce questo codice?

    [php]<?php

    error_reporting(E_ALL);
    ini_set('display_errors', 1);

    // apro il file sul server *.txt
    $file_handle = fopen("m22.txt", "rb");

    // lo leggo sino alla fine
    while (!feof($file_handle) ) {
    $line_of_text = fgets($file_handle);
    // esplodo il file di testo utilizzando il separatore |
    $parts = explode('|', $line_of_text);
    // stampo a video il valore dei gradi Nord letti dal file
    $gradi = $parts[14];
    }

    if (!isset($gradi)) {
    die("ERRORE");
    }

    $gradi = (int)$gradi;

    // converto i gradi in quadranti
    if ($gradi >= 0 && $gradi <= 89) {
    $quadrante = "NNE";
    } else if ($gradi >= 90 && $gradi <= 179) {
    $quadrante = "ESE";
    } else if ($gradi >= 180 && $gradi <= 269) {
    $quadrante = "SSW";
    } else if ($gradi >= 270 && $gradi <= 360) {
    $quadrante = "WNW";
    }

    // stampo a video il valore del quadrante
    echo " Quadrante:", $quadrante;

    ?>[/php]


  • User

    Ti ho scritto ... 😉


  • User Attivo

    Il file che stai usando contiene delle righe vuote che, ovviamente, vengono lette da fgets().

    Quante righe può avere al massimo il file?
    Quale riga devi leggere?


  • User

    Il txt dovrebbe essere questo

    Bogliasco| 1:07|16/02/09|6.7|6.8| 0:37|6.0|5.6|6.7|17|-16.7|1023.2|<!--windSpeed-->|1.6**|79|**8.0|0.0|0.0|0.0|141.0|153.0|0|0.0|0.08|

    Dove i valori sono divisi da | che poi vengono esplose.

    In un altra applicazione fatta allo stesso modo il file viene letto e lavorato.....

    E' tutto su un unica riga il valore <!--windSpeed--> è un problema di upload del software della centralina ma il campo subito dopo 1.6 è appunto il wind speed replicato, in poche parole l'ho inserito due volte.

    i gradi della direzione del vento sono il 14 valore (considerando che la numerazione parte da 0) in qst caso 79 Gradi.

    Ciao 😉


  • User Attivo

    [php]<?php

    error_reporting(E_ALL);
    ini_set('display_errors', 1);

    $file = "m22.txt";
    if (!is_readable($file)) {
    die('NOT READABLE');
    }

    $content = trim(file_get_contents($file));
    $parts = explode('|', $content);

    if (isset($parts[14])) {
    $gradi = $parts[14];
    } else {
    die('INVALID FORMAT');
    }

    $gradi = (int)$gradi;

    // converto i gradi in quadranti
    if ($gradi >= 0 && $gradi <= 89) {
    $quadrante = "NNE";
    } else if ($gradi >= 90 && $gradi <= 179) {
    $quadrante = "ESE";
    } else if ($gradi >= 180 && $gradi <= 269) {
    $quadrante = "SSW";
    } else if ($gradi >= 270 && $gradi <= 360) {
    $quadrante = "WNW";
    }

    // stampo a video il valore del quadrante
    echo " Quadrante:", $quadrante;

    ?>[/php]

    P.S.
    Per favore, potresti evitare di inviarmi dei messaggi privati per ogni post sul forum che fai?


  • User

    @filippotoso said:

    P.S.
    Per favore, potresti evitare di inviarmi dei messaggi privati per ogni post sul forum che fai?

    Ti ho scritto in pvt solo per poterti mandar i link visto che non me lo permette di fare da questa schermata.

    Non credevo fosse una forma offensiva. ti chiedo enormemente scusa.

    Sorry.

    Ora lo script mi pare Ok sei stato davvero gentilissimo. 😉

    Provo a sviluppare la restante parte e ti aggiorno strada facendo.

    Ancora grazie per la pazienza.