Newsgroup: it.comp.www.php
Titolo: Tracciato 290

Salve a tutti. Sapete se esiste uno script php che legge i dati contenuti
in una tabella mysql e genera un file di testo che rispetti il tracciato
290?
MT


Scusa la domanda da ignorante ma come è fatto un Tracciato 290?

 Scusa la domanda da ignorante ma come è fatto un Tracciato 290?
E' un formato particolare di file di testo che viene utilizzato come
standard per l'esportazione e l'importazione dei dati tra differenti
database. E' uno standard di fatto perche' molti enti pubblici utilizzano
questo formato, quindi se vuoi "dialogare" col loro sistema informativo,
devi convertire i tuoi dati in questo formato.
In pratica il tracciato 290 dice che (per esempio), per ogni riga, i primi
4 caratteri corrispondono al codice dell'ente che sta esportando i dati;
successivi 4 caratteri rappresentano l'anno di riferimento; altri 8
rappresentano un'altra cosa e così via fino alla fine della riga.
Il problema e' che ho trovato poca documentazione su come realmente e'
fatto questo tracciato e quei pochi esempi che ho trovato non combaciano
con alcuni file sicuri che ho a mia disposizione (cioe' di cui sono sono
sicuro che rispecchiano tale standars).
Suggerimenti?
MT

 fatto non succede nulla

 posto
Mi faresti un grande piacere, grazie! L'indirizzo e' yodadocet at hotmail
dot com
Ciao,
MT

Masami Takeuchi wrote:

postalo sul NG
-- 
www.iuz-lab.info

 
<?php 
$db_host = "localhost";
$db_user = "Sathia";
$db_password = "xxxxxx";
$db_name = "tariffe";
$db = mysql_connect($db_host, $db_user, $db_password);
if ($db == FALSE)
die ("database errato");
mysql_select_db($db_name, $db)
or die ("Connessione al database errata");
$db = file("./pedaggi.vero");
// se il file è molto grosso aumentare a dismisura la dimensione
// di ram a disposizione del php e il tempo di esecuzione :)
/*                          ^decimale^
01 420 001 99 14 06 0 2140000 2800000 031500 032300 040900 065100 077000
03153527003231865004087893006507095007696015
2  3   3   2  2  2  1 7       7       6      6      6      6      6      3  
2  1 9         9         9         9        xxx
*/
//$db = explode("\n",$db);
$estrazione = array();
$serial = array();
$conta = count($db);
print("<pre>");
foreach($db as $val){
//if(substr($val,8,2) == "99" ){
$riga = array();
        $inizio         = 0;
        $plus           = 2;    
        $rete           = substr($val,$inizio,$plus);
//      array_push($riga,$rete);        
//rete          
 
        $inizio         = $plus + $inizio;
        $plus           = 3;
        $uscita         = substr($val,$inizio,$plus);
//      array_push($riga,$uscita);      
//uscita         
 
        $inizio         = $plus + $inizio;
        $plus           = 3;
        $entrata        = substr($val,$inizio,$plus);
//      array_push($riga,$entrata);             
//entrata       
 
        $inizio         = $plus + $inizio;
        $plus           = 2;
        $filler_0       = substr($val,$inizio,$plus);
//      array_push($riga,$filler_0);
//filler_0                              
 
        $inizio         = $plus + $inizio;
        $plus           = 2;
        $soc_uscita     = substr($val,$inizio,$plus);
//      array_push($riga,$soc_uscita);  
//soc_uscita    
 
        $inizio         = $plus + $inizio;
        $plus           = 2;
        $soc_entrata    = substr($val,$inizio,$plus);   
//      array_push($riga,$soc_entrata);
//soc_entrata   
 
        $inizio         = $plus + $inizio;
        $plus           = 1;
        $filler_1       = substr($val,$inizio,$plus);           
//      array_push($riga,$filler_1);
//$filler_1     
 
        $inizio         = $plus + $inizio;
        $plus           = 7;
        $mt_pia = substr($val,$inizio,$plus);           
//      array_push($riga,$mt_pia); //far diventare km
//$mt_pia       
 
        $inizio         = $plus + $inizio;
        $plus           = 7;
        $mt_mon = substr($val,$inizio,$plus);           
//      array_push($riga,$mt_mon); //far diventare km
//$mt_mon       
 
 
        $inizio         = $plus + $inizio;
        $plus           = 6;
        $ped_arr_a      = substr($val,$inizio,$plus);           
//      array_push($riga,$ped_arr_a);
//$ped_arr_a    
 
        $inizio         = $plus + $inizio;
        $plus           = 6;
        $ped_arr_b      = substr($val,$inizio,$plus);           
//      array_push($riga,$ped_arr_b);
//$ped_arr_b    
 
        $inizio         = $plus + $inizio;
        $plus           = 6;
        $ped_arr_3      = substr($val,$inizio,$plus);           
//      array_push($riga,$ped_arr_3);
//$ped_arr_3    
 
        $inizio         = $plus + $inizio;
        $plus           = 6;
        $ped_arr_4      = substr($val,$inizio,$plus);           
//      array_push($riga,$ped_arr_4);
//ped_arr_4     
 
        $inizio         = $plus + $inizio;
        $plus           = 6;
        $ped_arr_5      = substr($val,$inizio,$plus);           
//      array_push($riga,$ped_arr_5);
//$ped_arr_5    
$SQL = "INSERT INTO valori VALUES 
(
$rete,
$uscita,
$entrata,
$soc_uscita,
$soc_entrata,
$mt_pia,
$mt_mon,
$ped_arr_a,
$ped_arr_b,
$ped_arr_3,
$ped_arr_4,
$ped_arr_5 ) ";
$query = mysql_query($SQL)or die($SQL.mysql_error());
print($i++."\n");
//print("<pre>");
//}     
}
echo("Finito");
 
?>
ciao :)


...badass
scusa, avevo letto male il topic...
beh, io mi sono trovato nella situazione contraria.
cmq teoricamente basta fare quello che trovi nel mio codice postato al
contrario.
Tieni presente che chiaramente hai bisogno del tracciato dei campi...
Cmq l'idea č:
fai un while del db, poi scrivi riga per riga.
Ciao
Sat_