Article View: free.it.visual-basic
Article #1645files csv
From: BillG.
Date: Sat, 13 Mar 2004 14:50
Date: Sat, 13 Mar 2004 14:50
178 lines
4722 bytes
4722 bytes
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.
Technical Details
Message-ID:
<hdF4c.40476$z23.1817448@news3.tin.it>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-03!sn-xit-02!sn-xit-04!sn-xit-01!sn-xit-06!sn-xit-09!supernews.com!upp1.onvoy!onvoy.com!news-out.visi.com!petbe.visi.com!news.octanews.net!news.tele.dk!news.tele.dk!small.news.tele.dk!irazu.switch.ch!switch.ch!newsfeed.nextoneserver.com!news-out.tin.it!news-in.tin.it!news3.tin.it.POSTED!not-for-mailShow Full Headers
Complete Article Headers
X-Google-Language: FRENCH,ASCII X-Google-Thread: f94ee,e61791c283d9d76d,start X-Google-Attributes: gidf94ee,public X-Google-ArrivalTime: 2004-03-13 06:52:13 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-03!sn-xit-02!sn-xit-04!sn-xit-01!sn-xit-06!sn-xit-09!supernews.com!upp1.onvoy!onvoy.com!news-out.visi.com!petbe.visi.com!news.octanews.net!news.tele.dk!news.tele.dk!small.news.tele.dk!irazu.switch.ch!switch.ch!newsfeed.nextoneserver.com!news-out.tin.it!news-in.tin.it!news3.tin.it.POSTED!not-for-mail From: "BillG." <raban@virgilio.it> Newsgroups: free.it.visual-basic Subject: files csv Lines: 182 X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2720.3000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2727.1300 Message-ID: <hdF4c.40476$z23.1817448@news3.tin.it> Date: Sat, 13 Mar 2004 14:50:53 GMT NNTP-Posting-Host: 80.181.145.98 X-Complaints-To: newsmaster@tin.it X-Trace: news3.tin.it 1079189453 80.181.145.98 (Sat, 13 Mar 2004 15:50:53 MET) NNTP-Posting-Date: Sat, 13 Mar 2004 15:50:53 MET Organization: TIN