- Home
- Categorie
- Coding e Sistemistica
- PHP
- Conversione gradi in quadranti
-
Potresti, per favore, postare il risultato del codice che ti è stato indicato, esattamente come viene visualizzato nel browser?
-
58NULL Quadrante:NNE
Lo script gira, sul browser non mi da cod di errore, solo che non mi converte.
-
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]
-
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...
Come avevo già detto prima se il valore lo metto a mano funziona
$gradi = "182";
mi dice il giusto quadrante ossia SSW
bye
-
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]
-
Ti ho scritto ...
-
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?
-
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
-
[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?
-
@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.