Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Caricare txt in mysql

  1. #1

    Caricare txt in mysql

    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

  2. #2

    Re: Caricare txt in mysql

    Originariamente 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
    UP

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    555
    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

  4. #4
    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

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    555
    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;

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.