Newsgroup: it.comp.lang.visual-basic
Titolo: file csv

Un saluto a tutto il NG,
Ho un problema (da principiante),
ho 2 file .csv e devo fare in modo che quando i valori  dei codici utente
(CU e CU2)
corrispondono vengono scritti su un file di testo i dati corrispondenti.
mi soiego meglio
es.:
FILE1(CSV) : CU;NOME1;INDIRIZZO;CAP;DEST;PROV........ETC
            125;ROSSI PIERO;VIA DANTE 18;00100;ROMA;RM...........
            126;VERDI MARIO;VIA PUCCINI 4;20100;MILANO;MI...........
FILE2(CSV) : CU2;RIGA_X
             125;XXXXXXXXXXXXXXXXXXXXX
             125;XXXXXXXXXXXXXXXXXX
             125;XXXXXXXXXXXXXXXXXXXXX
             125;XXXXXXXXXXXXXXXXXX
             125;XXXXXXXXXXXXXXXXXXXXX
             125;XXXXXXXXXXXXXXXXXX
             125;XXXXXXXXXXXXXXXXXXXXX
             125;XXXXXXXXXXXXXXXXXX
           126;YYYYYYYYYYYYYYYYYYYYYYY
           126;YYYYYYYYYYYYYYYYYYYYYYYY
           126;YYYYYYYYYYYYYYYYYYYYYYY
           126;YYYYYYYYYYYYYYYYYYYYYYYY
           126;YYYYYYYYYYYYYYYYYYYYYYY
           126;YYYYYYYYYYYYYYYYYYYYYYYY     ETC.
RISULTATO CHE VOGLIO OTTENERE:
FILE DI TESTO:
ROSSI PIERO
VIA DANTE 18
00100 ROMA RM
XXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXX
(successivo)
VERDI MARIO
VIA PUCCINI 4
20100 MILANO MI
YYYYYYYYYYYYYYYYYYYYY
YYYYYYYYYYYYYYYYYY
YYYYYYYYYYYYYYYYYYYYY
YYYYYYYYYYYYYYYYYY
YYYYYYYYYYYYYYYYYYYYY
YYYYYYYYYYYYYYYYYY
YYYYYYYYYYYYYYYYYYYYY
YYYYYYYYYYYYYYYYYY
YYYYYYYYYYYYYYYYYYYYY
YYYYYYYYYYYYYYYYYY
ETC.
===================
io ho fatto cosě:
 iCn = FreeFile
sFileCsv = "c:prova.csv"
Open sFileCsv For Input As iCn
  sStream = Input(LOF(iCn), iCn)
Close iCn
aRighe = Split(sStream, vbCrLf)
Kill sFileCsv
'========
'========
iCn2 = FreeFile
sFileCsv2 = "c:prova2.csv"
Open sFileCsv2 For Input As iCn2
  sStream2 = Input(LOF(iCn2), iCn2)
Close iCn2
aRighe2 = Split(sStream2, vbCrLf)
End If
Kill sFileCsv2
Kill sFileCsv3
'???????????????????
Open file1 For Append As nFile
For R = 1 To UBound(aRighe) - 1
  sDati = Split(aRighe(R), ";")
' vettorenomicampo
arNc = Array("CU", "NOME1", "INDIRIZZO", "CAP", "DEST", "PROV")
'Dim sDati As String
ReDim posizioni(UBound(arNc)) As Integer
'vettore nomicampoprimarigaExcel
arRNC = Split(aRighe(0), ";")
For i = 0 To UBound(arNc)
  For J = 0 To UBound(arNc) - 1
    If arNc(i) = arRNC(J) Then Exit For
  Next J
  posizioni(i) = J
   For J = 0 To 53
sDati(J) = Replace(sDati(J), """", "")
Next J
   If arNc(i) = "CU" Then
  CU = sDati(posizioni(i))
  End If
     If arNc(i) = "NOME1" Then
  NOME1 = sDati(posizioni(i))
  End If
If arNc(i) = "INDIRIZZO" Then
INDIRIZZO = sDati(posizioni(i))
End If
If arNc(i) = "CAP" Then
CAP = sDati(posizioni(i))
End If
If arNc(i) = "DEST" Then
DEST = sDati(posizioni(i))
End If
If arNc(i) = "PROV" Then
PROV = sDati(posizioni(i))
End If
 Print #nFile, NOME1
  Print #nFile, INDIRIZZO
   Print #nFile, CAP & DEST & PROV
For V = 1 To TZ2 - 1
sDati2 = Split(aRighe2(V), ";")
cu2 = sDati2(0)
RIGA_X = sDati2(1)
If CU2 = CU Then
Print #nFile, RIGA_X
End If
If cu2 > CU Then Exit For
Next V
NEXT
========
in questo modo funziona bene, ma quando i file ( specie il secondo) sono
molto grandi
il tutto rallenta parecchio.
mi aiutate ad ottimizzare la procedura.( sempre che la mia sia la soluzione
migliore).
chiedo scusa fin d'ora se non sono stato molto chiaro.
vi saluto cordialmente
Roberto.

 es.:
[CUT]
prova una comparazione tra matrici
dopo aver importato i csv con csvparser
www.cerretosoft.it/ita/dowload/esempivb6
--
Mauro Cerreto
www.cerretosoft.it
MSN-Yahoo mauro_6808