Newsgroup: it.comp.lang.visual-basic
Titolo: Internet transfer control - FTP

Quando costruisco la stringa di comando per il "Inet1.Execute" e la mando in
esecuzione mi dice sempre:
Impossibile assegnare il tipo
... e l'errore corrisponde a icUnsupportedType
Qualcuno sa dirmi cosa vuol dire e come posso risolvere il problema?
Grazie

 Qualcuno sa dirmi cosa vuol dire e come posso risolvere il problema?
Stavo per dirti "guarda l'help", poi mi sono ricordato che l'help
del controllo Inet è scarsissimo. :-)
"icUnsupportedType" 35760 "Cannot coerce type". Probabilmente
intende dire che si aspettava un parametro di un tipo e gli arriva
di un altro, e non riesce a fare una conversione automatica.
P.S.: La sfera è sporca, ma ho un presentimento... chissà se funziona ?
...dicevo, non è che stai usando nomi di file o di directory che
contengono spazi ? Giusto un'idea... la cosa mi aveva dato dei problemi.
Bye, G.

La stringa che cerco di inviare l'ho costruita così:
strEsegui = "GET " & file1 & " " & file2
e poi..
inet1.Execute , strEsegui
L'impostazione inet1.URL, inet1.Username e inet1.Password le ho impostate
dalla finestra proprietà del controllo.
Il protocollo (impostato sempre di là) è 2-icFTP.
L' OCX che uso è MSINET.OCX
Windows 98
VB 6.0
Ovviamente non funziona neanche con PUT.
Ho provato a mettere una label che mi tenesse informato sullo stato del
controllo con inet1_StateChanged
Giuro che non ci capisco più niente. A volte si connette, mi dà
icResponseCompleted ma ovviamente non ha
fatto niente. Altre volte mi dà icError, che però non mi dice qual'è
l'errore.
Scusate ma questo controllo mi sta facendo veramente impazzire!
Grazie
Paperino <non...@lo.dico> wrote in message
a4olru$6e8e$1...@stargate1.inet.it...


 Scusate ma questo controllo mi sta facendo veramente impazzire!
Ti capisco, sapessi il tempo che ci ho perso io, qualche anno fa...
Allora, il discorso va fatto cosě: dichiarare un Flag Boolean, io l'ho
chiamato "Terminato"; mandare il comando all'OCX, tutto insieme,
e aspettare che il file arrivi. Nella State_Changed, rimanere in attesa
dell'evento IcResponseCompleted o come si chiama, quello col
numero 12 insomma :-), e attivare il flag che faccia uscire dall'attesa.
Io mi sono fatto una sub con tutti i vari parametri che chiamo cosě:
ChiamaFileFTP UserNameRemoto, PasswordRemoto, IPAddressRemoto, _
DirInputRemoto, FileDaChiamare, DiscoTemp & DirTemp & NomeFileDaChiamare
Non posso postare l'intera sub per motivi di diritti, ma la parte fondamentale
č questa (Ricorda che NON devi usare nomi lunghi o con spazi in mezzo):
________________
Dim StrURL As String
Dim StrComando As String
StrURL = "FTP://" & UserName & ":" & Password & "@" & IPAddress
StrComando = "GET " & Percorso & NomeFileLetto & " " & NomeCompletoFileScritto
Inet1.Execute StrURL, StrComando ' <--------------------- tutto insieme, vedi ?
Do While Terminato = False
DoEvents
' Loop di attesa per l'arrivo del file.
' Si esce da questo loop quando, nella sub Inet_StateChanged,
' viene recuperato il file (12) oppure si verifica un errore (11)
' e viene settato a True il flag booleano Terminato
'*****************************************
' qui bisognerebbe inserire un timeout per gestire altri errori
' e il controllo di un altro flag per uscire se l'utente vuole
' interrompere l'esecuzione del programma
'*****************************************
DoEvents
Loop
________________
Nella StateChanged c'č:
_________________
If State = 12 Or State = 11 Then Terminato = True
________________
Mi rendo conto che sembra un bel po' confuso, non sono molto
bravo a spiegare certe contorsioni, ma fai un paio di prove,
vedrai che la cosa si chiarirŕ.
Bye, G.