LER UM FICHEIRO DE TEXTO EM URL
Aqui na faculdade estamos a desenvolver um apequena aplicação para gerir a Biblioteca. Agradecendo desde já toda a ajuda que nos possam prestar, trago uma nova questão:
Precisamos de abrir um ficheiro de texto numa url cujo valor será de 0 , se entretanto não tiver sido alterado, ou será de 1 se tiver tido alguma alteração.
Através do Shell execute, conseguimos abrir e fazer o download do ficheiro, mas não conseguimos ler o ficheiro de texto, o que torna inútil esta acção. Pretendia-mos algo assim:
No evento click de um botão:
1- Acede à URL e abre o ficheiro de texto para leitura (ver.txt)
2- Se o valor for 0 - aborta, se for 1, navega para a nova URL (.../manuais.doc) e informa os utilizadores que existem alterações efectuadas nos manuais e que necessitam substituir os documentos.
Isto seria muito útil pois todas as semanas existem alterações e todas as segundas feiras os utilizadores devem substituir os documentos. Os utilizadores estão espalhados na faculdade, mas também podem estar em outro lugar qualquer, motivo pelo qual estamos a pensar na DropBox para efectuar isto.
Estavamos a fazer assim, mas como é óbvio não está funcionando:
Dim Ficheiro As Integer, Linha, NomeFicheiro As String
Dim Status As String
Dim lReturn As Long
lReturn = ShellExecute(hWnd, [Ô]open[Ô], _
[Ô]
https://www.dropbox.com/s/clhogyf0zxluti4/ver.txt[Ô], _
vbNull, vbNull, SW_SHOWNORMAL)
Ficheiro = FreeFile
Open [Ô]ver.txt[Ô] For Input As #Ficheiro
Line Input #Ficheiro, Linha
MsgBox Linha
If Status > 0
MsgBox([Ô]Por favor actualizem os manuais[Ô],vbinformation[Ô],[Ô]Manuais[Ô])
ShellExecute Me.hWnd, [Ô]open[Ô], [Ô]https://www.dropbox.com/s/trdkp9fwt2s3ewl/Manuais.doc[Ô], [Ô][Ô], [Ô][Ô], 1
End If
Close #Ficheiro
Agradeciamos a vossa preciosa ajuda.
Precisamos de abrir um ficheiro de texto numa url cujo valor será de 0 , se entretanto não tiver sido alterado, ou será de 1 se tiver tido alguma alteração.
Através do Shell execute, conseguimos abrir e fazer o download do ficheiro, mas não conseguimos ler o ficheiro de texto, o que torna inútil esta acção. Pretendia-mos algo assim:
No evento click de um botão:
1- Acede à URL e abre o ficheiro de texto para leitura (ver.txt)
2- Se o valor for 0 - aborta, se for 1, navega para a nova URL (.../manuais.doc) e informa os utilizadores que existem alterações efectuadas nos manuais e que necessitam substituir os documentos.
Isto seria muito útil pois todas as semanas existem alterações e todas as segundas feiras os utilizadores devem substituir os documentos. Os utilizadores estão espalhados na faculdade, mas também podem estar em outro lugar qualquer, motivo pelo qual estamos a pensar na DropBox para efectuar isto.
Estavamos a fazer assim, mas como é óbvio não está funcionando:
Dim Ficheiro As Integer, Linha, NomeFicheiro As String
Dim Status As String
Dim lReturn As Long
lReturn = ShellExecute(hWnd, [Ô]open[Ô], _
[Ô]
https://www.dropbox.com/s/clhogyf0zxluti4/ver.txt[Ô], _
vbNull, vbNull, SW_SHOWNORMAL)
Ficheiro = FreeFile
Open [Ô]ver.txt[Ô] For Input As #Ficheiro
Line Input #Ficheiro, Linha
MsgBox Linha
If Status > 0
MsgBox([Ô]Por favor actualizem os manuais[Ô],vbinformation[Ô],[Ô]Manuais[Ô])
ShellExecute Me.hWnd, [Ô]open[Ô], [Ô]https://www.dropbox.com/s/trdkp9fwt2s3ewl/Manuais.doc[Ô], [Ô][Ô], [Ô][Ô], 1
End If
Close #Ficheiro
Agradeciamos a vossa preciosa ajuda.
Tente o seguinte:
No VB6, clique no menu Project > Components e marque o componente Microsoft Internet Transfer Control (Inet).
No formulário, adicione o controle Inet e as linhas de código abaixo para obter o conteúdo do arquivo de texto.
Perceba que adicionei um botão (com o nome Command1) no Form e no evento Click do mesmo é que escrevi o código acima.
No VB6, clique no menu Project > Components e marque o componente Microsoft Internet Transfer Control (Inet).
No formulário, adicione o controle Inet e as linhas de código abaixo para obter o conteúdo do arquivo de texto.
Private Sub Command1_Click()
On Error GoTo erro
Dim valor As String
valor = Inet1.OpenURL([Ô]https://sites.google.com/site/programacaoonline/arquivoweb.txt[Ô])
MsgBox valor
Exit Sub
erro:
MsgBox Err.Description
End Sub
Perceba que adicionei um botão (com o nome Command1) no Form e no evento Click do mesmo é que escrevi o código acima.
Obrigado, vou tentar e retorno.
Caro amigo
Fiz conforme me disse mas coloquei no evento load e recebi uma mensagem [Ô]programação on line google....etc[Ô]
Se o fizer para o a dropbox, envia-me um script bastante extenso
Private Sub Form_Load()
On Error GoTo erro
Dim valor As String
valor = Inet1.OpenURL([Ô]https://sites.google.com/site/programacaoonline/arquivoweb.txt[Ô])
MsgBox valor
Exit Sub
erro:
MsgBox Err.Description
End Sub
.........................
Private Sub Form_Load()
On Error GoTo erro
Dim valor As String
valor = Inet1.OpenURL([Ô]https://www.dropbox.com/s/clhogyf0zxluti4/ver.txt[Ô])
MsgBox valor
Exit Sub
erro:
MsgBox Err.Description
End Sub
Aqui recebo ao invés do valor [Ô]o[Ô], um script. Se o colega puder experimentar...sou novato nisto e estou atrapalhado.
Fiz conforme me disse mas coloquei no evento load e recebi uma mensagem [Ô]programação on line google....etc[Ô]
Se o fizer para o a dropbox, envia-me um script bastante extenso
Private Sub Form_Load()
On Error GoTo erro
Dim valor As String
valor = Inet1.OpenURL([Ô]https://sites.google.com/site/programacaoonline/arquivoweb.txt[Ô])
MsgBox valor
Exit Sub
erro:
MsgBox Err.Description
End Sub
.........................
Private Sub Form_Load()
On Error GoTo erro
Dim valor As String
valor = Inet1.OpenURL([Ô]https://www.dropbox.com/s/clhogyf0zxluti4/ver.txt[Ô])
MsgBox valor
Exit Sub
erro:
MsgBox Err.Description
End Sub
Aqui recebo ao invés do valor [Ô]o[Ô], um script. Se o colega puder experimentar...sou novato nisto e estou atrapalhado.
Olá
Altere o link de:
https://www.dropbox.com/s/clhogyf0zxluti4/ver.txt
para:
https://dl.dropboxusercontent.com/s/clhogyf0zxluti4/ver.txt
Outra maneira de fazer é usando a API URLDownloadToFile
Altere o link de:
https://www.dropbox.com/s/clhogyf0zxluti4/ver.txt
para:
https://dl.dropboxusercontent.com/s/clhogyf0zxluti4/ver.txt
Outra maneira de fazer é usando a API URLDownloadToFile
Private Declare Function URLDownloadToFile Lib [Ô]urlmon[Ô] Alias [Ô]URLDownloadToFileA[Ô] (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
Private Sub Form_Load()
URLDownloadToFile 0, [Ô]https://dl.dropboxusercontent.com/s/clhogyf0zxluti4/ver.txt[Ô], [Ô]C:\ver.txt[Ô], 0, 0
Dim sFileText As String
Dim iFileNo As Integer
iFileNo = FreeFile
Open [Ô]C:\ver.txt[Ô] For Input As #iFileNo
Input #iFileNo, sFileText
Close #iFileNo
Kill ([Ô]C:\ver.txt[Ô])
MsgBox sFileText
End Sub
Muito obrigado amigo, Vou experimentar ainda hoje e retorno o resultado. Muito obrigado.
Caro GANDA_NICK, nem sei como lhe agradecer. Foi limpinho, com a função funfou que foi uma maravilha. Muito obrigado. O final ficou desta maneira, mas se o colega vir que existe algo que possa ser melhorado e não for um abuso da minha parte,,,
Private Declare Function ShellExecute Lib [Ô]shell32.dll[Ô] Alias [Ô]ShellExecuteA[Ô] (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Private Declare Function URLDownloadToFile Lib [Ô]urlmon[Ô] Alias [Ô]URLDownloadToFileA[Ô] (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
Private Sub Form_Load()
URLDownloadToFile 0, [Ô]https://dl.dropboxusercontent.com/s/clhogyf0zxluti4/ver.txt[Ô], [Ô]C:\ver.txt[Ô], 0, 0
Dim sFileText As String
Dim iFileNo As Integer
iFileNo = FreeFile
Open [Ô]C:\ver.txt[Ô] For Input As #iFileNo
Input #iFileNo, sFileText
Close #iFileNo
Kill ([Ô]C:\ver.txt[Ô])
MsgBox sFileText
If sFileText >= 1 Then
Call MsgBox([Ô]Colegas, estão disponiveis novos manuais. Façam o download[Ô], vbInformation, [Ô]Update[Ô])
ShellExecute Me.hWnd, [Ô]open[Ô], [Ô]https://www.dropbox.com/s/trdkp9fwt2s3ewl/Manuais.doc[Ô], [Ô][Ô], [Ô][Ô], 1 [ô]Open for update
Else
Call MsgBox([Ô]Os manuais estão actualizados[Ô], vbInformation, [Ô]Nenhum Update[Ô])
End If
End Sub
Isto funciona, mas se vir que pode ser melhorado, estou a enviar-lhe o projecto. De qualquer forma renovo os agradecimentos de todos nós, os envolvidos neste projecto.
Private Declare Function ShellExecute Lib [Ô]shell32.dll[Ô] Alias [Ô]ShellExecuteA[Ô] (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Private Declare Function URLDownloadToFile Lib [Ô]urlmon[Ô] Alias [Ô]URLDownloadToFileA[Ô] (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
Private Sub Form_Load()
URLDownloadToFile 0, [Ô]https://dl.dropboxusercontent.com/s/clhogyf0zxluti4/ver.txt[Ô], [Ô]C:\ver.txt[Ô], 0, 0
Dim sFileText As String
Dim iFileNo As Integer
iFileNo = FreeFile
Open [Ô]C:\ver.txt[Ô] For Input As #iFileNo
Input #iFileNo, sFileText
Close #iFileNo
Kill ([Ô]C:\ver.txt[Ô])
MsgBox sFileText
If sFileText >= 1 Then
Call MsgBox([Ô]Colegas, estão disponiveis novos manuais. Façam o download[Ô], vbInformation, [Ô]Update[Ô])
ShellExecute Me.hWnd, [Ô]open[Ô], [Ô]https://www.dropbox.com/s/trdkp9fwt2s3ewl/Manuais.doc[Ô], [Ô][Ô], [Ô][Ô], 1 [ô]Open for update
Else
Call MsgBox([Ô]Os manuais estão actualizados[Ô], vbInformation, [Ô]Nenhum Update[Ô])
End If
End Sub
Isto funciona, mas se vir que pode ser melhorado, estou a enviar-lhe o projecto. De qualquer forma renovo os agradecimentos de todos nós, os envolvidos neste projecto.
Tópico encerrado , respostas não são mais permitidas