Ciao a tutti,
ho un problema con un file txt da caricare in mysql.
Load data in file richiede un separatore ma il mio file non ha separatori ma numero DEFiNITO di caratteri per ogni campo (è un'estrazione da AS400).
Si può fare qualcosa??
Grazie
Ciao a tutti,
ho un problema con un file txt da caricare in mysql.
Load data in file richiede un separatore ma il mio file non ha separatori ma numero DEFiNITO di caratteri per ogni campo (è un'estrazione da AS400).
Si può fare qualcosa??
Grazie
UPOriginariamente inviato da Andrew_de_moray
Ciao a tutti,
ho un problema con un file txt da caricare in mysql.
Load data in file richiede un separatore ma il mio file non ha separatori ma numero DEFiNITO di caratteri per ogni campo (è un'estrazione da AS400).
Si può fare qualcosa??
Grazie
Da provare
//apro
$varfile = fopen('nomefile.txt','r') ;
//leggo
$stringa1 = fread($varfile,1024) ;
//il ciclo
//fino alla fine
while(!feof($varfile)){
$stringa1 = fread($varfile,1024) ;
$creoarray = explode(",",$stringa1) ;
}
foreach($r as $val){
$campo1 .= substr($val,0,7) ;//0 inizio campo e lunghezza
$campo2 .= substr($val,7,1) ;//7 inizio secondo campo e lunghezza tu indica ciò che ti serve
}
//chiudo
fclose($varfile) ;
print $campo1 ;
print $campo2 ;
poi puoi fare una sql e come valori da inserire indichi i vari campi, magari ci sono altre soluzioni![]()
Grazie per l'idea ma ho qualche problema....magari puoi darmi ancora una mano perchè l'idea è buona.
Questo è il mio codice:
//apro
$varfile = fopen('txttest.txt','r');
//leggo
$stringa1 = fread($varfile,1024);
$creoarray = array();
//il ciclo
//fino alla fine
while(!feof($varfile)){
$stringa1 = fread($varfile,1024);
$creoarray = explode(",",$stringa1);
}
foreach($creoarray as $val){
$campo1 .= substr($val,0,5);
$campo2 .= substr($val,5,6);
$campo3 .= substr($val,10,6);
$campo4 .= substr($val,15,6);
}
//chiudo
fclose($varfile);
print $campo1;
print $campo2;
print $campo3;
print $campo4;
Ti spiego il problema.
Con una variabile di controllo ho verificato che il ciclo non carica l'array.
Php non dà errori, ma sembra escludere il ciclo che dovrebbe caricare l'array e di conseguenza tutto il resto.
Non sono sicuro dell'explode....non ho una virgola come separtore.
Forse bisogna caricare direttamente l'array.
Help
Grazie
Io ho provato con un file di testo senza caratteri fine campo, ma solo spazi fino a fine record. La virgola l'ho inserita perchè è obbligatoria nell' explode, però se stampo l campi funge
//apro
$varfile = fopen('txttest.txt','r');
//leggo
$stringa1 = fread($varfile,1024);
$creoarray = array();// prova a non metterla questa riga
//il ciclo
//fino alla fine
while(!feof($varfile)){
$stringa1 = fread($varfile,1024);
$creoarray = explode(",",$stringa1);
}
foreach($creoarray as $val){
$campo1 .= substr($val,0,5);
$campo2 .= substr($val,5,6);
$campo3 .= substr($val,10,6);
$campo4 .= substr($val,15,6);
}
//chiudo
fclose($varfile);
print $campo1;
print $campo2;
print $campo3;
print $campo4;