|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Aug 2005
Città: Roma sud
Messaggi: 590
|
[Macro excel] Problemi con gli a capo durante la lettura di un file
Ciao a tutti ho un problema con una macro excel in cui devo leggere un file .csv ( in pratica un file di testo separato da virgole).
In pratica nei file forniti in input al programma alcuni hanno solo il LF(ASCII 10) e altri hanno sia CR(ASCII 13) che LF(ASCII 10) alla fine della riga... Il mio problema e' quindi come leggere correttamente riga per riga questo file con una macro VB in excel? grazie ciao
__________________
-Mac Book intel core duo 1,83GHz, 1,25 Gb RAM -Amd athlon 64 dual core 4400+, 2 GB RAM, Asus a8n-sli Deluxe, totale 500 GB di HARD DISK(4 hdd) |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Ad esempio così... :
Codice:
'ASCII 10 = costante vbLf
'ASCII 13 = costante vbCr
Dim strInput As String
strInput = vbLf & "Stringa Pulita" & vbLf & vbCr
MsgBox strInput
Dim strOutput As String
strOutput = strInput
Dim arrayCharsNA() As Variant
arrayCharsNA = Array(vbLf, vbCr)
Dim i As Integer
For i = 0 To UBound(arrayCharsNA)
strOutput = Replace(strOutput, arrayCharsNA(i), "")
Next i
MsgBox strOutput
Meglio se parametrizzata in una Function... |
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Aug 2005
Città: Roma sud
Messaggi: 590
|
Quote:
Comunque mi hai dato una buona idea su come risolvere... alla fine ho risolto cosi': Codice:
appo = "" 'Leggo tutto il file Open ThisWorkbook.Path & "\" & cFilename For Input As #1 Do Line Input #1, linea appo = appo & linea & "#END#" Loop Until EOF(1) = True Close (1) 'sostituisco tutti i CR che potrebbero dare problemi appo = Replace(appo, vbCr, "") 'sostituisco i LF con #END# per conoscere la fine dalla riga appo = Replace(appo, vbLf, "#END#") 'In linee avro' il file linea per linea Linee() = Split(appo, "#END#") Lung = UBound(Linee) conta = Lung 'Qui conto gli a capo alla fine del file per farli ignorare al programma le linee vuote alla fine Do While conta > 0 If Linee(conta) = "" Then Lung = Lung - 1 End If conta = conta - 1 Loop ciao
__________________
-Mac Book intel core duo 1,83GHz, 1,25 Gb RAM -Amd athlon 64 dual core 4400+, 2 GB RAM, Asus a8n-sli Deluxe, totale 500 GB di HARD DISK(4 hdd) |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 13:36.




















