Stream di testo con FileSystemObject



  • Stream di testo con FileSystemObject
    di Peppu84 (utente non iscritto) data: 21/09/2013 14:30:56

    Ciao a tutti,
    ho questo problema:
    sto concatenando pezzetti di codici html divisi per celle. A fine riga si crea un file esterno html col numero della riga assegnato.
    Questo viene ripetuto per ogni riga.
    Il problema è il seguente:
    quando apro questi file html col notepad, mi mostra tutti i caratteri senza gli spazi e il testo sembra incompleto. Li apro con pspad e i caratteri sono tutti e giusti. Li apro con un browser e la pagina html è perfetta.
    Questi file html li importo su turbo lister di ebay e addirittura me li legge in lingua cinese.
    Chi mi aiuta?
     
    Sub crea_file_INSERZ_HTML()
      Dim fso As FileSystemObject
      Dim fsoR As FileSystemObject
      Dim stream As TextStream
      Dim strFileName As String
      Dim objTextStream
      Dim tabella As String
      Const fsoForReading = 1
    
      ' Create a FileSystemObject.
      
      For i = 1 To 10000
        tabella = ""
        If Trim(Cells(i, "A")) <> "" Then
          Set fso = New FileSystemObject
          
          ' Create a TextStream.
          Set stream = fso.CreateTextFile("C:UsersPeppuDesktopDG BIKEEBAYFile CSVAFAM Pignoni" & i & ".html", True)
          
          Set fsoR = New FileSystemObject
          If fsoR.FileExists(Trim(Cells(i, "H"))) Then
            'The file exists, so open it and output its contents
            Set objTextStream = fsoR.OpenTextFile(Trim(Cells(i, "H")), fsoForReading)
            tabella = objTextStream.ReadAll
            objTextStream.Close
            Set objTextStream = Nothing
        End If
        
        'Clean up
        Set fsoR = Nothing
          
          stream.Write Trim(Cells(i, "A")) & _
          Trim(Cells(i, "B")) & _
          Trim(Cells(i, "C")) & _
          Trim(Cells(i, "D")) & _
          Trim(Cells(i, "E")) & _
          Trim(Cells(i, "F")) & _
          Trim(Cells(i, "G")) & _
          Trim(Cells(i, "h")) & _
          Trim(Cells(i, "I")) & _
          Trim(Cells(i, "J")) & _
          Trim(Cells(i, "K")) & _
          Trim(Cells(i, "L")) & _
          Trim(Cells(i, "M")) & _
          Trim(Cells(i, "N")) & _
          Trim(Cells(i, "O")) & _
          Trim(Cells(i, "P")) & _
          Trim(Cells(i, "Q")) & _
          Trim(Cells(i, "R")) & _
          Trim(Cells(i, "S")) & _
          Trim(Cells(i, "t")) & _
          Trim(Cells(i, "u")) & Trim(Cells(i, "v")) & Trim(Cells(i, "w")) & Trim(Cells(i, "x")) & Trim(Cells(i, "y")) & Trim(Cells(i, "z")) & Trim(Cells(i, "aa")) & Trim(Cells(i, "ab")) & Trim(Cells(i, "ac"))
    
        
          'stream.Write "This line uses the Write method."
        
          stream.Close
        End If
      Next
      
     
     
    End Sub



  • di Vecchio Frac data: 21/09/2013 16:40:39

    Ciao,
    "Aiuto EXCEL VBA" non è un titolo valido per le discussioni, come precisato sia nel regolamento che ripetuto al momento di inviare una discussione. I titoli devono essere pertinenti per consentire ricerche future e interessare i lettori con problematiche simili. Cambierò d'ufficio il titolo al thread e chiedo per cortesia maggiore attenzione per il futuro.

    Nel merito, il problema sembra essere di Notepad e della sua incapacità di decodificare il testo... se apri un Notepad vuoto, che impostazione trovi sono Formato > Carattere > Scrittura?






  • di Vecchio Frac data: 21/09/2013 16:42:47

    Aggiungo, distruggi anche "stream" al termine per sicurezza.
    Provo pure io a ricostruire lo scenario.





  • di Vecchio Frac data: 21/09/2013 16:51:43

    cit. "mi mostra tutti i caratteri senza gli spazi e il testo sembra incompleto"
    ---> A me non si verifica il problema che lamenti. Avrei bisogno, per completare il test, di un pezzetto del file di partenza (non diecimila righe... ne bastano due o tre). Se si tratta di dati riservati, sostituiscili con dati fittizi ma uguali, nel formato, a quelli originali.





  • di Peppu84 (utente non iscritto) data: 21/09/2013 17:09:27

    Ciao, ti ho allegato il file excel con tre righe



  • di Peppu84 (utente non iscritto) data: 21/09/2013 17:37:14

    Sembra tutto ok.
    Ma quando importo il csv con il file su turbo lister, mi cambia tutti i caratteri in cinese.



  • di Vecchio Frac data: 22/09/2013 14:51:44

    Anche a me non dà alcun problema di conversione (nemmeno Notepad a dire il vero).
    Non so turbo listener (non mi sono documentato).





  • di Peppu84 (utente non iscritto) data: 22/09/2013 15:50:10

    Trovato il problema,
    bisogna creare file txt e codificarli con unicode.
    Riuscite ad aggiustare la macro con queste richieste?