Newsgroup: it.comp.lang.visual-basic
Titolo: WinSocks... Ora mi spacco la testa contro il muro...

Sara' il caldo, saro' scemo... Ma il con il WinSock ci litigo sempre!
Sto' facendo un'operazione banalissima, la connessione ad una pagina web...
Ma le cose non vanno mai come spero...
Vi presento il caso:
Pagina di esempio: (quella che sto' provando da ore a prendere!!!)
http://www.redfoxy.it/index.htm
Codice:
Private Sub Esegui_Click()
    Domain = "
www.redfoxy.it
"
    Page_URL = "/index.htm"
   Do While Not tcpClient.State = 0: Wait (0.01): Loop
   write_file File_Download, "D:\temp_x\index.html"
End Sub
Private Sub tcpClient_Close()
    tcpClient.Close
End Sub
Private Sub tcpClient_Connect()
    tcpClient.SendData "GET " & Page_URL & vbCrLf 'Chr(10) & Chr(10)
End Sub
Private Sub tcpClient_DataArrival(ByVal bytesTotal As Long)
    tcpClient.GetData Dati, vbString
    File_Download = File_Download & Dati
End Sub
Public Static Sub write_file(Dati_da_salvare, Path_File As String)
    Dim file As TextStream
    Set file = fso.CreateTextFile(Path_File)
    file.Write Dati_da_salvare
    file.Close
End Sub
Risultato:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<HTML><HEAD>
<TITLE>404 Not Found</TITLE>
</HEAD><BODY>
<H1>Not Found</H1>
The requested URL /index.htm was not found on this server.<P>
<HR>
<ADDRESS>Apache/1.3.26 Server at default Port 80</ADDRESS>
</BODY></HTML>
che dire... Raga, ditemi voi! Il caldo mi sta' fondendo la capa...
Ciao ;^)=
-- 
RedFoxy
A fox around web
Power at fox for a yiffing world!

     tcpClient.SendData "GET " & Page_URL & vbCrLf 'Chr(10) & Chr(10)
AFAIR (è pasato tempo) una richiesta minimale dovrebbe
includere almeno la versione HTTP:
"GET /index.htm HTTP/1.1"
Un altro dubbio è su quel vbCrLf, non so se Apache lo accetta.
Dovrebbe bastare un vbCR.
Comunque, se su quel server c'è più di un dominio, cioè è in
virtual host, come fa la macchina a dirti che pagina ti deve mandare ?
Sarebbe meglio, più esplicito, usare qualcosa come:
"GET /index.htm HTTP/1.1" & vbCr
"Host: 
www.redfoxy.it
" & vbCr
"Connection: Close" & vbCr & vbCr
Attenzione che sono andato a memoria, leggiti le RFC che ti conviene.
Bye, G.

 Attenzione che sono andato a memoria, leggiti le RFC che ti conviene.
Inet intendi percaso il WebBrowser? Vorrei provare ma visto che devo
prendere una serie di dati continua e prendere il contenuto delle pagine non
saprei come fare con il web browser...


 pagine non saprei come fare con il web browser...
Hummm on mi chiude la connessione se non cade (Seguendo gli rfc)
Strano


 Strano
Ok risolto :P


 saprei come fare con il web browser...
Pensavo l'avessi già scartato per qualche motivo... intendevo
MSINET.OCX. Ha la funzione OpenURL, meglio di così...
Text1.Text = Inet1.OpenURL("
http://redfoxy.it/index.htm
")
Bye, G.


Azz... mai usato :D
Buono a sapersi... Ora mai l'ho lanciato (da un pezzo)
Ho calcolato che fa circa 74 pagine al minuto e ne deve fare 5147... Sono
gia' a 1613 vediamo... Credi che con msinet sarebbe stato + veloce?


 veloce?
e mo' che fai... aspetti un'altra ora per vedere se funge? :-)
...non dormite mai.... peggio di me!!!
--
PaoloS

 ...non dormite mai.... peggio di me!!!
ehehe ci sono anch'io
:P
-- 
Morfeus®
Free Joint
 :PII

 gia' a 1613 vediamo... Credi che con msinet sarebbe stato + veloce?
Non lo so, dipende da cosa stai scaricando. Comunque
in genere il "limite di velocità" è dato dalla connessione
e dal server, non dal programma, a meno che tu non debba
elaborare, magari in modo pesante, i dati che ti arrivano.
Bye, G.

 elaborare, magari in modo pesante, i dati che ti arrivano.
No per ora li scarico...
CMQ una 256k contro un server su una 10mb :P


 ...non dormite mai.... peggio di me!!!
Di certo non lo testo ora...
Mi togli una curiosita'?
Che significa il verbo "dormire"? L'ho cercato sul vocabolario e riporta la
voce "vedi Ronfare" e andando sotto Ronfare c'e' la dicitura "Vedi
Dormire"...


 dicitura "Vedi Dormire"...
Per la cronaca: 3227


 CMQ una 256k contro un server su una 10mb :P
Quindi il limite è (256 / 8)- circa 8-10% di overhead... diciamo 30
kilobyte al secondo... toglendo ancora qualcosa per connessione
e sconnessione, e considerando che in mezz'ora circa hai fatto
1614 "pagine", qualunque cosa contengano, deduco che ogni
pagina è di circa 28-30 KB, altrimenti la velocità non è ottimale.
Vedi tu :-).
Un Paperino e i conti "spannometrici" delle 4 di notte.


Di meno di meno... sono 7k l'uno circa, sono solo testo.
Semplici pagine HTML.
Se vuoi sapere cosa sono, leggiti piu' sotto il post "ABI e CAP delle
banche"
Devo ammettere che i programmatori dei siti web delle banche sono dei
cani...
Sto' scaricando tutti gli abi e i cap delle banche sa una banca che usa per
mostrare gli abi e i cab delle banche una pagina che ESEGUE UNA QUERY COME
RICHIESTE DELLA PAGINA!
Il bello che questa query puo' eseguire qualsiasi comando senza limite...
Ma che bel castello marcondiro dirondello... Ma che bel castello marcondiro
dironda'!


> Vedi tu :-).
4:11 = 4282


 dicitura "Vedi Dormire"...
eh eh eh....
cmq adesso un 3-4 ore di 'sudate' me le vado a fare pure io... alle 9 devo
tornare on-the-road...
ci sentiamo + tardi, bye bye
PaoloS

 ci sentiamo + tardi, bye bye
Pure tu "at nine on the road"? andiamo bene... MA allora e' un vizio! ^^


 4:11 = 4282
Ok, il programma ha adempiuto alle necessita'! 5147 file scaricati
correttamente! (si spera...)
Poi, in futuro, si passera' all'elaborazione dei dati per metterli in un
DB...
Chi vuole il DB Con gli ABI e i CAB aggiornati ad oggi? ^^


 Chi vuole il DB Con gli ABI e i CAB aggiornati ad oggi? ^^
Io. Sennò al prox meeting vai a piedi. :-P

 Chi vuole il DB Con gli ABI e i CAB aggiornati ad oggi? ^^
Io Io sono stato sveglio tutta la notte e ho pregato che tutto funzionasse


 Chi vuole il DB Con gli ABI e i CAB aggiornati ad oggi? ^^
Il sito comune no? Mi sembra ovvio! :D

 Io. Sennò al prox meeting vai a piedi. :-P
Come vossia comanda o.0
Magari posto qui la struttura dei 5000 file cosi' mi date una mano per fare
la "decodifica" per importarli su access ^^


 Il sito comune no? Mi sembra ovvio! :D
Ok, appena pronto metto online


 funzionasse
Vabbe'... Non hai fatto il tuo dovere e non mi hai fatto addormentare, ma
voglio essere magnanimo e ti passo il tutto :)


 Chi vuole il DB Con gli ABI e i CAB aggiornati ad oggi? ^^
una copia mi tocca no?
o te la devo chiedere stanotte? :-)
PaoloS
p.s.: a proposito... buongiorno!!!

 per fare la "decodifica" per importarli su access ^^
Se però pubblichi sul SC il file "pulito" è meglio.

 Se perň pubblichi sul SC il file "pulito" č meglio.
Cioe'?
I file HTML scaricati da internet? Meglio un ACCESS bello pulito pronto
all'uso.
Non credi?
Ciao ;^)=


 p.s.: a proposito... buongiorno!!!
Gio...rno? Per me e' sempre notte :D


 Non credi?
Certo che credo! ;-)
Se però hai bisogno di "tradurre" i vari HTML in un file pronto, questo
dicevo, sono disponibile.

 non saprei come fare con il web browser...
Mi sembra che webbrowser supporti due metodi: uno sincrono ed uno asincrono.
Quello sincrono dovrebbe essere open.

 Gio...rno? Per me e' sempre notte :D
a chi lo dici.... mi sta acchiappa' na' pecora.... poi verso le 23/24 mi
sveglio :-)
PaoloS

 questo dicevo, sono disponibile.
Ok, allora ti mandero' un po' di materiale


 mi sveglio :-)
Noto che ti piacciono le pecorelle :D


 questo dicevo, sono disponibile.
Qui trovi tutti i file HTML scaricati:
http://www.redfoxy.it/temp/paghtml.rar


 :-)
Qui trovi tutti i file HTML scaricati:
http://www.redfoxy.it/temp/paghtml.rar
-- 


 
http://www.redfoxy.it/temp/paghtml.rar
51737 record?
ce l'ho...
:-)
PaoloS

 
http://www.redfoxy.it/temp/paghtml.rar
Grazie.
Ecco il programma:
===============
'Creare un form ampio a sufficienza per il titolo
'e il nome del file. Diciamo Width=7000
'Nessun controllo sul form.
'Incollare il codice che segue.
'A me ha funzionato (51737 banche in 16 secondi) ;-)
'Grazie alla nottata di RedFoxy
Dim gia_attivata As Boolean
Dim interrompere As Boolean
Private Sub Form_Load()
    gia_attivata = 0
    interrompere = 0
End Sub
Private Sub Form_Activate()
    If gia_attivata Then Exit Sub
    gia_attivata = 1
'       Personalizzazioni
'--------------------------
    titolo_procedura = "Lettura Banche HTML e produzione TXT (by Lupo)"
    cartella_html_default = "C:\All_Inet\BancheHTML\Codici ABI e CAP Banche
in HTML"
    file_txt_default = "BancheHTML.TXT"
    separatore_campi = vbTab    'Carattere (o caratteri) da usare per
separare i vari campi sul file di testo
'--------------------------
    Me.Caption = titolo_procedura
'       Chiede la cartella che contiene i file HTML delle varie pagine delle
banche
    Beep
    cartella_html = InputBox("Percorso e nome cartella che contiene i file
HTML delle banche:", titolo_procedura, cartella_html_default)
    If cartella_html = "" Then
termina:
        Unload Me
        Exit Sub
    End If
    If Right(cartella_html, 1) = "\" Then cartella_html =
Left(cartella_html, Len(cartella_html) - 1)
'       Rileva i file (giusto per contarli) e li mette in un vettore
    ReDim vettore_file_html(0 To 0)
    file = Dir(cartella_html & "\*.html")
    Do
        If file = "" Then Exit Do
        ReDim Preserve vettore_file_html(0 To UBound(vettore_file_html) + 1)
        vettore_file_html(UBound(vettore_file_html)) = file
        file = Dir
    Loop
'       Comunica numero file trovati e chiede file da produrre
    Beep
    file_txt = InputBox("Trovati " & UBound(vettore_file_html) & " file." &
vbNewLine & vbNewLine & "Percorso e nome del file di testo da creare" &
vbNewLine & "(verrà preventivamente CANCELLATO!):", titolo_procedura,
cartella_html & "\" & file_txt_default)
    If file_txt = "" Then GoTo termina
'       Inizia la procedura automatica
    Me.Print "Click col pulsante destro per interrompere"
    tempo_iniziale = Timer
    Screen.MousePointer = vbHourglass
'       Cancella e crea il file da produrre
    If Dir(file_txt) <> "" Then Kill file_txt
    canale_file_txt = FreeFile
    Open file_txt For Output As #canale_file_txt
    righe = 0
'       Analizza i vari file
    For nfile = 1 To UBound(vettore_file_html)
        DoEvents
        If interrompere Then Exit For
        file = vettore_file_html(nfile)
        canale_file_html = FreeFile
        Open cartella_html & "\" & file For Input Shared As
#canale_file_html
        Me.Caption = titolo_procedura & " - " & file
'           Legge l'intero HTML del file
        html = Input$(LOF(canale_file_html), #canale_file_html)
        Close canale_file_html
        html_maiuscolo = UCase(html)
'           Cerca inizio tabella
        partenza = 1
        stringa = ">SPORTELLO"
        GoSub cerca_stringa
        stringa = ">PR"
        GoSub cerca_stringa
        stringa = "<TR "
        GoSub cerca_stringa
'           Cerca la fine della tabella
        salva_partenza = partenza
        stringa = "</TD><TD WIDTH=10></TD></TR></TR>" & vbNewLine &
"</TABLE>"
        GoSub cerca_stringa
        fine_tabella = partenza - Len(stringa)
        partenza = salva_partenza
        Do
'               Cerca vari campi
            If partenza >= fine_tabella Then
                Exit Do
            End If
            stringa = "SMALLERTEXT" & Chr(34) & ">"
            GoSub cerca_campo
            Print #canale_file_txt, campo & separatore_campi;   'ABI
            stringa = "SMALLERTEXT" & Chr(34) & ">"
            GoSub cerca_campo
            Print #canale_file_txt, campo & separatore_campi;   'CAB
            stringa = "SMALLERTEXT" & Chr(34) & ">"
            GoSub cerca_campo
            Print #canale_file_txt, campo & separatore_campi;   'NOME BANCA
            stringa = "SMALLERTEXT" & Chr(34) & ">"
            GoSub cerca_campo
            Print #canale_file_txt, campo & separatore_campi;   'INDIRIZZO
            stringa = "SMALLERTEXT" & Chr(34) & ">"
            GoSub cerca_campo
            Print #canale_file_txt, campo & separatore_campi;   'SPORTELLO
            stringa = "SMALLERTEXT" & Chr(34) & ">"
            GoSub cerca_campo
            Print #canale_file_txt, campo & separatore_campi;   'LOCALITA'
            stringa = "SMALLERTEXT" & Chr(34) & ">"
            GoSub cerca_campo
            Print #canale_file_txt, campo & separatore_campi;   'COMUNE
            stringa = "SMALLERTEXT" & Chr(34) & ">"
            GoSub cerca_campo
            Print #canale_file_txt, campo & separatore_campi;   'CAP
            stringa = "SMALLERTEXT" & Chr(34) & ">"
            GoSub cerca_campo
            Print #canale_file_txt, campo                       'PROVINCIA
            righe = righe + 1
        Loop
prossimo_file:
    Next nfile
interrompi:
    Close canale_file_txt
    Screen.MousePointer = vbDefault
    Me.Cls
    Call MsgBox(IIf(interrompere, "PROCEDURA INTERROTTA!" & vbNewLine &
vbNewLine, "") & "Fine procedura." & vbNewLine & "Tempo impiegato " &
Timer - tempo_iniziale & " secondi." & vbNewLine & "Righe " & righe,
vbOKOnly + vbInformation)
    Unload Me
    Exit Sub
cerca_stringa:
    comodo = InStr(partenza, html_maiuscolo, stringa)
    If comodo Then
        partenza = comodo + Len(stringa)
    Else
        Beep
        If MsgBox("File " & file & vbNewLine & "Non trovo " & stringa &
vbNewLine & "Interrompo?", vbYesNo + vbDefaultButton2 + vbQuestion) = vbYes
Then
            interrompere = 1
            GoTo interrompi
        Else
            GoTo prossimo_file
        End If
    End If
    Return
cerca_campo:
    GoSub cerca_stringa
    inizio_campo = partenza
    stringa = "</TD>"
    GoSub cerca_stringa
    fine_campo = partenza - Len(stringa) - 1
    campo = Mid(html, inizio_campo, fine_campo - inizio_campo + 1)
    Return
End Sub
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single,
Y As Single)
    If (Button And vbRightButton) Then interrompere = 1
End Sub


http://www.bitmarket.it/download/mdb_abicab.rar

[*PaoloS* : 
solo...@tin.it
] ha scritto:

Non è possibile! Stesso orario di post (vedi sopra il programmillo) ;-)


programmillo?
metto on line il file mdb utilizzato per la conversione....
tempo di sviluppo 2 minuti...
:-)
http://www.bitmarket.it/download/conv_abicab.mdb
--
PaoloS

 tempo di sviluppo 2 minuti...
Ora ci spieghi come hai fatto. Neh?!

 
http://www.bitmarket.it/download/mdb_abicab.rar
Oddio... conviene nasconderti ... VolpeRossa e' 2 gg che sbatte la testa con
sti abi e cab ... se ti legge te se magna ... e poi ti ringrazia ^_-
-- 
<Gigio2K>
Sito Comune
Nokia -> I.T.H.N. -> 
http://www.ithn.it/
VB -> I.C.L.VB -> 
http://www.it-lang-vb.net/

 sti abi e cab ... se ti legge te se magna ... e poi ti ringrazia ^_-
Gigio, ehm, veramente siam partiti dalle pagine che RedFoxy ha scaricato e
che ha pubblicato.
Leggi bene, bestiiiiiiaaaaaa!!! ;-)

 Leggi bene, bestiiiiiiaaaaaa!!! ;-)
Oddio ecco che succede a sincronizzare il Ng a cavolo :-/ ho troncato un po
troppi post forse ...
-- 
< un Gigio2K che si monta gli scarponi da mirrorscrambling >



e ora cominciano le statistiche :-)
dove abito io ci sono 23 sportelli bancari...  'nsomma...
PaoloS

 Ecco il programma:
...
PS per RedFoxy:
ehm, non pubblicheresti (a parte l'URL di destinazione) il programmillo che
hai usato stanotte, intendo dire quello corretto dopo i tuoi primi post?
Non ho mai fatto niente del genere e mi piacerebbe capirci un po' piů di un
acca. ;-) Grazie.

 dove abito io ci sono 23 sportelli bancari...  'nsomma...
No, no, te ci devi dire come hai fatto in due minuti.
Sempre per favore... ;-)


Lupo non hai visto che ho pubblicato pure il sorgente in Access2000?
vabbe', non e' vb puro, ma pur sempre vb e'....
senno che vogliamo fa', ci mettiamo a scrivere ancora i mailreader :-)...
capisc' a me' ....
--
PaoloS

 Lupo non hai visto che ho pubblicato pure il sorgente in Access2000?
No, ho visto il database (...oddio, è là dentro?) :-(

 No, ho visto il database (...oddio, è là dentro?) :-(
Ok, ho visto ora l'altro link.
Pensavo fosse un duplicato di quello del database.

 piacerebbe capirci un po' più di un acca. ;-) Grazie.
Vuoi che NON lo pubblico o vuoi che lo pubblico? Si o no?


 Pensavo fosse un duplicato di quello del database.
E no no no signora longari!
Lei mi casca sui cambi testuali!
ABI CAP E CAB SONO TESTUALI!!!! GLI 0 venna rispettati!
non sono fissi di 5 caratteri possono essere anche 6 (escludendo
 il CAB)
RagaSuoli... a questo punto non so' se fidarmi delle vostre
conversioni o no ;)


Lupo wrote:
Scusa se ho risposposto qui, ma mailgate mi diceva che il 3D era troppo
lungo e non poteva postare o.0


 'A me ha funzionato (51737 banche in 16 secondi) ;-)
Sul sito della banca di roma dice che sono 51796 ma dal sito dove ho preso
quei file dice che sono 51737, vabbe' ne mancano 59... pazienza...


 Vuoi che NON lo pubblico o vuoi che lo pubblico? Si o no?
Vabbe' lo pubblico... ^^
Se hai bisogno di commenti ed aiuti fai un fischio!
Io in genere utilizzo il winsock perche' sono abbituato ad andare via telnet
e fare tutti i miei lavorini (tipo fare applicazioni client/server su porte
personali o collegarmi a servizi direttamente alle loro porte)
Questo non fa altro che seguire lo standard RFC collegandosi alla porta 80
(WEB) e gli passa quello che serve per poi ricevere i dati.
Una nota, come avrete visto nei file html, non c'e' il filtro per quanto
riguarda la risposta dello stato etc...
In pratica nel data arrival avrei dovuto fare un controllo di quello che
ricevevo per sapere se era tutto ok, per attivare i settaggi etc...
Questo e' quello che risponde il server per le pagine web che ho scaricato,
da notare che tutte le risposte che si ricevono finiscono con un doppio
invio! (in genere un doppio vbCR, cmq basta leggere i gli RFC ^^)
HTTP/1.1 200 OK
Server: Microsoft-IIS/5.0
Date: Tue, 01 Jul 2003 01:38:29 GMT
Connection: close
Content-Length: 6822
Content-Type: text/html
Set-Cookie: ASPSESSIONIDGGQGQCWG=EDFBACAAFHAADNJGIOCAFFHE; path=/
Cache-control: private
' Form con un CommandButton di nome Esegui
' Label di nome Conteggio
' oggetto winsock di nome tcpClient
' Componenti: MS WinSock 6.0 (SP5)
Option Explicit
Dim Page_URL As String, File_Download As String, Dati As String, Size_Byte
As String, Domain As String
Private Sub Esegui_Click()
    Scarica
End Sub
Private Sub Form_Unload(Cancel As Integer)
    End
End Sub
Private Sub tcpClient_Close()
    tcpClient.Close
End Sub
Private Sub tcpClient_Connect()
Dim Data_to_send As String
' Quando viene la connessione viene richiesta,
' viene eseguita questa sub
    Data_to_send = "GET http://" & Domain & Page_URL & " HTTP/1.1" & Chr(10)
    Data_to_send = Data_to_send & "Host: " & Domain & Chr(10)
    Data_to_send = Data_to_send & "Connection: Close" & Chr(10) & Chr(10)
    tcpClient.SendData Data_to_send
End Sub
Private Sub tcpClient_DataArrival(ByVal bytesTotal As Long)
' Quando arrivano i dati viene eseguita questa sub
    tcpClient.GetData Dati, vbString
    File_Download = File_Download & Dati
End Sub
Public Static Sub Scarica()
Dim L1 As Integer
    Domain = "
www.redfoxy.it
"
    For L1 = 1 To 1 ' Questo loop e' solo per prendere + file...
'        Page_URL = Page_URL & L1
        Page_URL = "/index.htm"
        File_Download = ""
        tcpClient.Connect Domain, 80
        Do While Not tcpClient.State = 0: Wait (0.01): Loop
        ' Qui elaboriamo quello che abbiamo scaricato e lo salviamo :)
'        write_file File_Download, "D:\temp_x\" & Right("000000" & L1, 5) &
".html"
        Conteggio = Right("000000" & L1, 5)
        tcpClient.Close ' Non ci sarebbe bisogno ma cosi'
                        ' e' sicuro che la connessione sia chiusa
    Next
End Sub
Public Sub Wait(n As Single)
Dim S
    S = Timer
    Do While Timer < S + n
    DoEvents
    Loop
End Sub


 conversioni o no ;)
Ohhh, Red! A me dici questo? Non ho verificato se ABI e CAB nel db di PaoloS
siano o meno testuali, ma i miei lo sono di certo. Ma tanto
(vittima.Enabled=True) i miei programmilli non li caga nessuno
(vittina.Enabled=False) ;-)

 Vabbe' lo pubblico... ^^
Mi riferivo all'URL/IP di destinazione.
Io volevo che tu pubblicassi il programma, non necessariamente il sito da
cui hai scaricato ;-)
Grazie del programma. Versione funzionante, vero?!

 Grazie del programma. Versione funzionante, vero?!
Certo


 (vittina.Enabled=False) ;-)
Ma che minchiate stai dicendo???
Io ho usato IL TUO programma perche' + performante ed utilizzabile!
Poi magari lo modifico un po' e se vuoi te lo passo


 Poi magari lo modifico un po' e se vuoi te lo passo
Il mio programma crea un file di testo, quindi č tutto ... text. Non
capisco.
Se c'č un errore che sega un carattere all'inizio o alla fine di ogni campo
(oggi integro il tutto nei miei db) dimmelo.

 campo (oggi integro il tutto nei miei db) dimmelo.
No mi sembra perfetto... per il discorso TEXT era per paolo...
CMQ l'ho usato e va bene, con un po' di modifiche puo' diventare benissimo
il sistema per fare l'update dell'archivio


 il sistema per fare l'update dell'archivio
Ho modificato così:
...
'               Cerca vari campi
            If partenza >= fine_tabella Then
                Exit Do
            End If
            stringa = "SMALLERTEXT" & Chr(34) & ">"
            GoSub cerca_campo
            Print #canale_file_txt, String(5 - Len(campo), "0") & campo &
separatore_campi; 'ABI
...
per aggiungere eventuali "0" in testa al codice ABI (già a 4 cifre, senza
"0" davanti, nelle pagine HTML originali).
Inoltre ho verificato che nelle 51737 righe ve ne sono alcune (17) di
integralmente duplicate. Le effettive univoche sono 51720. Ho importato i
dati dal file di testo ad Access lasciandogli creare un campo ID. Dopo, per
avere le diverse, occorre fare una Select Distinct su tutti i campi tranne
l'ID.
A proposito: Da quel sito si riesce a capire a quando le pagine sono
aggiornate?
Visto il numero delle banche non avrei dubbi che sia abbastanza aggiornato,
ma non ho trovato BCI (o B.C.I.) che dovrebbe essere la nuova denominazione
(o essere citato nella stessa) della (ex) CARIPLO...
Grazie ancora.

 CARIPLO...
Non so'... prova sulla banca di roma


Lupo wrote:
Appro', giusto una nota al tuo programma di importazione...
NON sempre importa correttamente, ad esempio:
ABI: 3223
BANCA: UNICREDIT PRIVATE BANKING SPA      VIA ALFIERI
Come vedi "sfora"


 Come vedi "sfora"
Ho visto dei troncamenti, ho guardato le pagine originali e c'era
coincidenza, quindi appaiono troncate all'origine. In ogni caso verificherò.
Grazie.
PS: Credo d'aver capito quale sia il sito (le pagine appaiono identiche).
Ieri sera ne aveva di meno, di banche.
Intendiamoci, ci può stare, perchè alcune possono essere accorpate (dubito
che chiudano...)

 coincidenza, quindi appaiono troncate all'origine. In ogni caso
verificherň.
In "quel" sito č scritta cosě... per tutte le 16 pagine ottenibili (oggi)
cercando quel ABI

 vuoi unirti alla lavorazione ;)
Sě, se la trovi (con aggiornamenti frequenti e download-abile), volentieri.

 (oggi) cercando quel ABI
Mi scrivi in privato? ho perso la tua mail


 Mi scrivi in privato? ho perso la tua mail
bhe io lo inviterei in Chat visto che c'e' anche una Special Guest in questo
momento !


chi?

 chi?
Tutti ovviamente ^_^ 
( parlavo di Lupo ma il mio quote selvaggio ha mozzato un po troppo ! )