• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Sir Pereira

Formato URI

41 mensagens neste tópico

Boas pessoal,

gostaria que me ajudassem, por exemplo, queria saber se o conteúdo de duas textboxes estão num ficheiro .txt que está num site.

Estou a tentar fazer isto, mas está a dar-me uns erros com o código URI.

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

queres postar o codigo?

Que metodo e que estas a usar para ler?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

depois é só uma questão de "partires" essa variável da forma como quiseres.... e está pronto a usar ;-)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

@José Lopes: estava a usar o ReadAllText do FileSystem.

@jpaulino: a partir desse código tentei extrair o necessário, mas mesmo assim não consegui. Basicamente o erro se bem me recordo era sobre a conversão para Long.

Mais logo posto o código porque eu tou a falar do telemóvel.

Cumprimentos :(

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu tenho um ficheiro de controlo de actualizações num server..e basicamente o que eu faço é:

dim i as integer
Dim Contents As String = MyWebClient.DownloadString('path_http")
Dim Variaveis() As String = Split(Contents, Chr(Keys.LineFeed)) ' Aqui estou a usar um ficheiro em que cada linha corresponde a um valor distinto - vou desdobrar a variável content pela variaveiss()

'Depois..por exemplo

for i = 0 to variaveis.lenght-1
msgbox variaveis(i)
next

'Este ciclo vai dar-te uma msgbox de cada um dos diferentes valores assumidos pela variavel

Não sei se ficou mais claro agora....

Claro que depende dos dados que tens no txt no server... e como eles estão arrumados (em linhas, separados por ";" ou por ",", ...)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ora bem, de volta a casa, e aqui está o código:

    Private Sub btnLogin_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLogin.Click
        Dim networkCredentials As New Net.NetworkCredential()
        With networkCredentials
            .UserName = "b31_1980023"
            .Password = "xxxxxxxxxx"
        End With
        MyWebClient.Credentials = networkCredentials
        txtInfo = MyWebClient.DownloadString(SessionAccess.ToString)
        txtInfoArray = txtInfo.Split(vbNewLine)
        If txtInfoArray.Contains(txtID.Text And txtPassword.Text) Then
            MsgBox("Login correct!", MsgBoxStyle.Information)
        Else
            MsgBox("Login incorrect!", MsgBoxStyle.Critical)
        End If
    End Sub

Dá o erro:

A conversão da cadeia "UnVqLxLy" para o tipo 'Long' não é válida.

PS: O código UnVqLxLy é um código gerado aleatoriamente por uma função que tenho.

O erro dá na parte:

        If txtInfoArray.Contains(txtID.Text And txtPassword.Text) Then

O que está mal aqui?

Cumps :(

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

o problema entao esta a ser na ligação ao web server.

poque é que estas a usar as credential's... isto aqui e suposto funcionar por download directo via http... as credentials usam-se para ftp por exemplo... é suposto existir algum tipo de autenticação?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

o problema entao esta a ser na ligação ao web server.

poque é que estas a usar as credential's... isto aqui e suposto funcionar por download directo via http... as credentials usam-se para ftp por exemplo... é suposto existir algum tipo de autenticação?

No webserver? Mas eu tenho previamente uma ligação com o webserver de upload que funciona bem...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

nao tens que dar um indice?

Um índice como?

Algum de vocês tem TeamViewer? É que se me vissem o código todo era mais fácil do que estar a "atirar postas de pescada ao ar"...

Cumps :(

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ok...

Recapitulando.. esta variável txtInfoArray deveria ser do tipo txtInfoArray(), porque provavelmente quando fazes:

txtInfo = MyWebClient.DownloadString(SessionAccess.ToString)
        txtInfoArray = txtInfo.Split(vbNewLine)

ele vai criar um array a partir do split do txtinfo.

quando te referires doravante ao  txtInfoArray deverias utiliza-lo em conjunto com o índice..por exemplo 

If txtInfoArray(0).Contains(txtID.Text And txtPassword.Text) Then
            MsgBox("Login correct!", MsgBoxStyle.Information)

Não sei se fui mais claro agora... mas ainda nao percebi bem o que retorna o teu

txtInfo = MyWebClient.DownloadString(SessionAccess.ToString)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não se trata de "atirar postas de pescada ao ar".

Não podes fazer dessa forma (penso que o txtInfoArray é string mas é uma List(Of T))

If txtInfoArray.Contains(txtID.Text And txtPassword.Text) Then

Tens de utilizar;

If txtInfoArray.Contains(txtID.Text)  And txtInfoArray.Contains(txtPassword.Text) Then

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Jose Lopes não tem nada a ver como o download, se não dava erro antes. A linha onde está a dar erro é depois do downloadstring e o problema é no sintax.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Para quem queria saber:

    Private SessionAccess As String = "http://xtrade.isgreat.org/htdocs/xtrade/access.tmp"

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

o que devolve a leitura desse ficheiro... ou por ontro lado... qual é a string devolvida?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

o que devolve a leitura desse ficheiro... ou por ontro lado... qual é a string devolvida?

Acho que isto te explica tudo :( :

   Private Sub main_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.Focus()
        txtNewID.Text = RandomNumber(1000000, 10000)
        txtNewPassword.Text = RandomPassword(8)
        swriter.WriteLine("===================================================")
        swriter.WriteLine("             X-Trade under Copyrights              ")
        swriter.WriteLine("===================================================")
        swriter.WriteLine("ID: " & txtNewID.Text)
        swriter.WriteLine("Password: " & txtNewPassword.Text)
        swriter.WriteLine("Date: " & Today.Date.ToLongDateString)
        swriter.WriteLine("Time: " & TimeOfDay.ToLongTimeString())
        swriter.WriteLine("===================================================")
        swriter.Close()
        My.Computer.Network.UploadFile(My.Computer.FileSystem.SpecialDirectories.Temp & "/access.tmp", "ftp://ftp.byethost31.com/xtrade.isgreat.org/htdocs/xtrade/access.tmp", "b31_1980023", "xxxxxxxxxx")

    End Sub

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

se fosse eu... na criação do ficheiro de controlo punha um ";" no final de cada linha

Depois no Download e verificação fazia o seguinte

Private Sub btnLogin_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLogin.Click
        Dim networkCredentials As New Net.NetworkCredential()
        With networkCredentials
            .UserName = "b31_1980023"
            .Password = "xxxxxxxxxx"
        End With
        MyWebClient.Credentials = networkCredentials
        txtInfo = MyWebClient.DownloadString(SessionAccess.ToString)
        txtInfoArray = txtInfo.Split(";")
        If txtInfoArray(3).Contains(txtID.Text) And txtInfoArray(4).Contains(txtPassword.Text) Then
            MsgBox("Login correct!", MsgBoxStyle.Information)
        Else
            MsgBox("Login incorrect!", MsgBoxStyle.Critical)
        End If
    End Sub

Só deve ser preciso verificar se o indice do da variavel txtInfoArray é mesmo aquele

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não percebi o porquê do ";"... podes explicar?

E substituindo o indíce, levei com o erro:

Índice fora dos limites da matriz.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ok... na realidade tu quando les o ficheiro do servidor...ele lê tudo a eito. o ";", é um caracter que eu utilizo para identificar que existe uma quebra de linha, podes utilizar um outro..que nao o vb.new line...

acho que este faz o serviço(separar as linhas)  sem o ";" é:

 Chr(Keys.LineFeed)

Assim..o Split vai originar qq coisa do género

txtInfoArray (0) = "==================================================="

txtInfoArray (1) = "            X-Trade under Copyrights              "

txtInfoArray (2) = "==================================================="

txtInfoArray (3)=

.....

percebeste a ideia? eu uso o ";" porque nao é usado no ficheiro de controlo... e porque eu em cada 1 linha tenho 2 elementos, ou seja... eu para alem de fazer o split das linhas...ainda faço o split de cada linha...e esse ja teve que ser com este truque.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ok... na realidade tu quando les o ficheiro do servidor...ele lê tudo a eito. o ";", é um caracter que eu utilizo para identificar que existe uma quebra de linha, podes utilizar um outro..que nao o vb.new line...

acho que este faz o serviço(separar as linhas)  sem o ";" é:

 Chr(Keys.LineFeed)

Assim..o Split vai originar qq coisa do género

txtInfoArray (0) = "==================================================="

txtInfoArray (1) = "          X-Trade under Copyrights              "

txtInfoArray (2) = "==================================================="

txtInfoArray (3)=

.....

percebeste a ideia? eu uso o ";" porque nao é usado no ficheiro de controlo... e porque eu em cada 1 linha tenho 2 elementos, ou seja... eu para alem de fazer o split das linhas...ainda faço o split de cada linha...e esse ja teve que ser com este truque.

Desculpa a ignorância, mas como aplicas o código?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

mais logo... eu posto aí..ou entao podemos fazer isso via..teamviewer... agora tenho que sair... do work ;-)

ou então envia-me isso via mail... acho que esta visivel

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

mais logo... eu posto aí..ou entao podemos fazer isso via..teamviewer... agora tenho que sair... do work ;-)

ou então envia-me isso via mail... acho que esta visivel

Eu perfiro via TeamViewer :(

Então depois quando chegares manda-me um PM, que eu passo a vida aqui no P@P e adoro carregar no F5 :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora