|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Apr 2001
Messaggi: 850
|
[VB] Scrivere un file
Ciao a tutti,
sto cercando di fare un semplice programma con VBasic, però non riesco a risolvermi un problema: Quando uso il comando Write# il programma mi scrive le stringhe tr virgolette. In pratica: Write #1, "Antonio fa caldo!" Lui scrive nel file "Antonio fa caldo!" Mentre io voglio che mi scriva solo Antonio fa caldo! Avete la soluz? Grazie |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
|
Prova a mettere PRINT al posto di WRITE
__________________
"Analizzando e valutando ogni giorno tutte le idee, ho capito che spesso tutti sono convinti che una cosa sia impossibile, finchè arriva uno sprovveduto che non lo sa e la realizza!" A. Einstein |
![]() |
![]() |
![]() |
#3 | |
Senior Member
Iscritto dal: May 2001
Città: Triggiano
Messaggi: 4459
|
Quote:
![]() |
|
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
|
Quote:
![]() Se no nn replicavo se nn ero sicuro ![]()
__________________
"Analizzando e valutando ogni giorno tutte le idee, ho capito che spesso tutti sono convinti che una cosa sia impossibile, finchè arriva uno sprovveduto che non lo sa e la realizza!" A. Einstein |
|
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Apr 2001
Messaggi: 850
|
Ottimo!!!
Grazie ragazzi. Però ditemi una cosa... Forse è impossibile, ma c'è la possibilità di trasferire una file TXT via internet? Cioè io ho un sito web dove devo spedire un file TXt sempre aggiornato via FTP, posso farlo con VB senza dover creare il TXT con VBasic e poi spedirlo con Un client? E' tanto complesso? In pratica volevo fare un pulsante che mandasse il file via FTP... Forse è fanstascienza! |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
|
No per nulla...
Ti posto una mio procedura. Codice:
Option Explicit Private Declare Function InternetConnect Lib "wininet.dll" Alias "InternetConnectA" (ByVal hInternetSession As Long, ByVal sServerName As String, ByVal nServerPort As Integer, ByVal sUsername As String, ByVal sPassword As String, ByVal lService As Long, ByVal lFlags As Long, ByVal lContext As Long) As Long Private Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA" (ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, ByVal sProxyBypass As String, ByVal lFlags As Long) As Long Private Declare Function FtpPutFile Lib "wininet.dll" Alias "FtpPutFileA" (ByVal hFtpSession As Long, ByVal lpszLocalFile As String, ByVal lpszRemoteFile As String, ByVal dwFlags As Long, ByVal dwContext As Long) As Boolean Private Sub SendFileFTP() On Error GoTo Errore Dim sFileRemote As String Dim sDirRemote As String Dim sFileLocal As String Dim lOpen As Long Dim lConnection As Long Dim nFreeFile As Integer 'trasferisco il file nel FTP DoEvents lOpen = InternetOpen(scUserAgent, INTERNET_OPEN_TYPE_DIRECT, vbNullString, vbNullString, 0) lConnection = InternetConnect(lOpen, LeggiPreferences("DATI FTP", "Host"), INTERNET_INVALID_PORT_NUMBER, LeggiPreferences("DATI FTP", "UserName"), mcCrypt.DecryptAPI(LeggiPreferences("DATI FTP", "Password"), "Id9VhDCX21", True), INTERNET_SERVICE_FTP, IIf(LeggiPreferences("DATI FTP", "AccessoPassivo") = "0", 0, INTERNET_FLAG_PASSIVE), 0) If lOpen <> 0 And lConnection <> 0 Then 'creo il file da mettere sul FTP nFreeFile = FreeFile Open App.Path & "\" & LeggiPreferences("DATI FTP", "File") For Output As #nFreeFile Print #nFreeFile, CreaFTPFile(LeggiPreferences("DATI FTP", "FileCode")) Close #nFreeFile sDirRemote = "/" & LeggiPreferences("DATI FTP", "Cartella") sFileRemote = LeggiPreferences("DATI FTP", "File") sFileLocal = App.Path & "\" & sFileRemote Call rcd(LeggiPreferences("DATI FTP", "Host"), sDirRemote, lConnection) 'mando il file all'FTP DoEvents bSendFileFTP = FtpPutFile(lConnection, sFileLocal, sFileRemote, FTP_TRANSFER_TYPE_BINARY, 0) 'elimino il file Call Kill(App.Path & "\" & LeggiPreferences("DATI FTP", "File")) End If End Sub Private Sub rcd(ByVal sHost As String, sDir As String, ByVal lConnection As Long) On Error GoTo Errore Dim sPathFromRoot As String If sDir = "" Then Exit Sub Else If InStr(1, sDir, sHost) Then sPathFromRoot = Mid$(sDir, Len(sHost) + 1, Len(sDir) - Len(sHost)) Else sPathFromRoot = sDir End If If sPathFromRoot = "" Then sPathFromRoot = "/" End If Call FtpSetCurrentDirectory(lConnection, sPathFromRoot) End If End Sub ![]()
__________________
"Analizzando e valutando ogni giorno tutte le idee, ho capito che spesso tutti sono convinti che una cosa sia impossibile, finchè arriva uno sprovveduto che non lo sa e la realizza!" A. Einstein |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Apr 2001
Messaggi: 850
|
Non è per NIENTE complicato!
SCHERZI? Io non ci ho capito niente!!! Però sono sicuro che funzionerà! Dimmi solo dove devo mettere l'indirizzo FTP, la pass, l'account e il nome del file da trasf Ciao e grazie (scusa l'ignoranza) |
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Apr 2001
Messaggi: 850
|
Ah, un'altra cosa.
Ho visto che li c'è una funz di kill, vuol dire che cancella il file dopo averlo mandato? Se io voglio che mandi il tutto con un pulsante dove devo metterlo quel codice? Grazie ancora |
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
|
- Si kill elimina il file creato dopo averlo mandato!
- Per metterlo in un command basta che crei un command e richiami la funzione SendFileFTP - Per i dati nell'FTP devi cambiare questa riga: lConnection = InternetConnect(lOpen, HOST, INTERNET_INVALID_PORT_NUMBER, USER_NAME, PASSWORD, INTERNET_SERVICE_FTP, ACCESSO_PASSIVO, 0) E cambi quesi: HOST, USER_NAME, PASSWORD. ACCESSO_PASSIVO (dove metti 0 per sidattivarlo, e il parametro INTERNET_FLAG_PASSIVE per attivarlo
__________________
"Analizzando e valutando ogni giorno tutte le idee, ho capito che spesso tutti sono convinti che una cosa sia impossibile, finchè arriva uno sprovveduto che non lo sa e la realizza!" A. Einstein |
![]() |
![]() |
![]() |
#10 |
Senior Member
Iscritto dal: Apr 2001
Messaggi: 850
|
Ho abbastanza capito, però rispetto al codice che avevi messo sopra c'è qualche diff...
Cioè dal cod sopra sembra che questi dati se li ricavi in qualche altro modo, tipo leggendoli da file. Poi, il file da spedire, ponendo che sia ciccio.txt, dove lo devo inserire? Grazie per la pazienza |
![]() |
![]() |
![]() |
#11 |
Senior Member
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
|
Si scusami, pensavo che riuscissi a cambiare da solo i dati....colpa mia che nn ci ho pensato prima sorry
![]() Questo è un brandello di codice del mio programma ed effettivamente i parametri che servivano andavo a prenderli da un file INI dove ci sono memorizzate le opzioni del programma. Codice:
'creo il file da mettere sul FTP nFreeFile = FreeFile Open App.Path & "\ciccio.txt" & For Output As #nFreeFile Print #nFreeFile, qui metti il contenuto del file Close #nFreeFile sDirRemote = "/" & 'cartella dell'ftp (es: ublteam.com/prova) sFileRemote = "ciccio.txt" sFileLocal = App.Path & "\ciccio.txt" Call rcd(LeggiPreferences("DATI FTP", "Host"), sDirRemote, lConnection) 'mando il file all'FTP DoEvents bSendFileFTP = FtpPutFile(lConnection, sFileLocal, sFileRemote, FTP_TRANSFER_TYPE_BINARY, 0) 'elimino il file Call Kill(sFileLocal) Codice:
Private Const INTERNET_OPEN_TYPE_DIRECT = 1 Private Const INTERNET_INVALID_PORT_NUMBER = 0 Private Const INTERNET_SERVICE_FTP = 1 Private Const INTERNET_FLAG_PASSIVE = &H8000000 Private Const FTP_TRANSFER_TYPE_BINARY = &H2
__________________
"Analizzando e valutando ogni giorno tutte le idee, ho capito che spesso tutti sono convinti che una cosa sia impossibile, finchè arriva uno sprovveduto che non lo sa e la realizza!" A. Einstein |
![]() |
![]() |
![]() |
#12 |
Senior Member
Iscritto dal: Apr 2001
Messaggi: 850
|
Le cost devo metterle nelle dichiarazioni vero?
Il mio prob è che ora, non so come, tutte le variabile che avevo messo mi diventato nn definite! Che palle però... Sono proprio un zuccone, però non ci riesco. Potresti farmi un favore? Mi mandi per mail un file VB dove ci sia un pulsante che faccia mandare al sito: "ftp.utenti.lycos.it" nella cartella "prova/" con account "Arturo" con password "Antonio" il file già esistente "c:\ciccio.txt" ??? Lo so che è una grande richiesta, ma io ci provo ![]() Grazie cmq, ciao Ultima modifica di beog : 12-10-2007 alle 14:24. |
![]() |
![]() |
![]() |
#13 |
Senior Member
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
|
Ti ho mandato una mail...spostiamoci li a parlare! a dopo
__________________
"Analizzando e valutando ogni giorno tutte le idee, ho capito che spesso tutti sono convinti che una cosa sia impossibile, finchè arriva uno sprovveduto che non lo sa e la realizza!" A. Einstein |
![]() |
![]() |
![]() |
#14 |
Senior Member
Iscritto dal: Apr 2001
Messaggi: 850
|
Ora tutto funziona, però ho un problema:
la connessione viene aperta ma non viene chiusa, cioè non fa il log out, quindi se devo inviare 2 file a breve dist di tempo non funzia perchè l'FTP è occupato da l'altro client. Come faccio a fare il log out? Grazie, ciao |
![]() |
![]() |
![]() |
#15 |
Senior Member
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
|
Scusami tanto!!
![]() Purtroppo mi ero dimenticato che io la chiusura nn c'è l'ho in quella routine ![]() Riparo subito all'errore Public Declare Function InternetCloseHandle Lib "wininet.dll" (ByVal hInet As Long) As Integer E devi mettere la funzione: Call InternetCloseHandle(lConnection) Sorry ancora
__________________
"Analizzando e valutando ogni giorno tutte le idee, ho capito che spesso tutti sono convinti che una cosa sia impossibile, finchè arriva uno sprovveduto che non lo sa e la realizza!" A. Einstein |
![]() |
![]() |
![]() |
#16 |
Senior Member
Iscritto dal: Apr 2001
Messaggi: 850
|
E devo metterla alla fine della funzione SendFileFTP? Giusto?
Grazie, ciao... PS non devi scusarti, anzi, sei il mio salvatore!!! |
![]() |
![]() |
![]() |
#17 | |
Senior Member
Iscritto dal: Mar 2002
Città: Italy/Usa
Messaggi: 2817
|
Quote:
Non vedo l'ora che anche matpez prepari un suo tutorial per Visual Basic!!
__________________
"Utilizzando atomi pentavalenti drogheremo il silicio di tipo n; Utilizzando atomi trivalenti drogheremo il silicio di tipo p; Utilizzando della cannabis ci drogheremo noi e vedremo il silicio fare cose impossibili" - DSDT-HowTo |
|
![]() |
![]() |
![]() |
#18 | |
Senior Member
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
|
Quote:
Bho...sei convinto? ![]() Fammi sapere... al massimo concordiamo via email! ![]()
__________________
"Analizzando e valutando ogni giorno tutte le idee, ho capito che spesso tutti sono convinti che una cosa sia impossibile, finchè arriva uno sprovveduto che non lo sa e la realizza!" A. Einstein |
|
![]() |
![]() |
![]() |
#19 | |
Senior Member
Iscritto dal: Mar 2002
Città: Italy/Usa
Messaggi: 2817
|
Quote:
![]()
__________________
"Utilizzando atomi pentavalenti drogheremo il silicio di tipo n; Utilizzando atomi trivalenti drogheremo il silicio di tipo p; Utilizzando della cannabis ci drogheremo noi e vedremo il silicio fare cose impossibili" - DSDT-HowTo |
|
![]() |
![]() |
![]() |
#20 | |
Senior Member
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
|
Quote:
![]() ![]() ![]()
__________________
"Analizzando e valutando ogni giorno tutte le idee, ho capito che spesso tutti sono convinti che una cosa sia impossibile, finchè arriva uno sprovveduto che non lo sa e la realizza!" A. Einstein |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 14:06.