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

Sir Pereira

[RESOLVIDO] Detectar mudança de linha

13 mensagens neste tópico

Boas pessoal,

num programa meu queria que o programa ao ler o texto (.txt), coloca-se cada linha numa listbox, mas queria que detecta-se quando há mudança de linha (já tentei com o vbNewLine e não dá (Constant cannot be the target of an assignment.).

Se alguém me puder ajudar agradecia.

Se não me conseguirem dizer com aquilo do detectar quando há mudança de linha, queria ao menos que me ajudassem a desenrascar isto a meter por linha na listbox.

Thx cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não... isto provavelmente é um pequeno código bastante simples, aliás, eu sei que já fiz algo do género. Mas deu-me uma branca pah. LOL

Será que me podias dizer como utilizo o Split neste caso?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Aqui está um exemplo genérico que depois podes adaptar.

Dim conjBytes() As Byte = My.Computer.FileSystem.ReadAllBytes('fiche.txt')
Dim texto As String = ""
For Each b As Byte In conjBytes
     texto &= ChrW(b)
Next
texto = texto.Replace(ChrW(10), "")
Dim linhas() As String = texto.Split(ChrW(13))

Se tiveres dúvidas, pergunta.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se tiveres dúvidas, pergunta.

Ok, vamos começar :thumbsup:

O ReadAllBytes não era suposto ver o tamanho do ficheiro, ou estou em erro?

O que significa &=?

O que é o ChrW?

:D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O ReadAllBytes não era suposto ver o tamanho do ficheiro, ou estou em erro?

O ReadAllBytes lê cada byte do ficheiro.

Reapara que enquanto o ReadAllText lê todos os caracteres do ficheiro, o ReadAllBytes lê o seu código Unicode. Desta maneira, não existem problemas, que o ReadAllText têm, em comer acentos e cedilhados...

O que significa &=?

é uma abreviatura. É igual isto

texto = texto & ChrW(b) 

O que é o ChrW?

Transforma o valor Unicode num caracter.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O ReadAllBytes lê cada byte do ficheiro.

Reapara que enquanto o ReadAllText lê todos os caracteres do ficheiro, o ReadAllBytes lê o seu código Unicode. Desta maneira, não existem problemas, que o ReadAllText têm, em comer acentos e cedilhados...

é uma abreviatura. É igual isto

texto = texto & ChrW(b) 

Transforma o valor Unicode num caracter.

Eh la, hoje já aprendi umas coisinhas novas :D

Olha amanhã logo testo o código porque agora tenho de ir estudar (a pedido dos meus pais xD).

Depois amanhã digo algo.

Cumps e obrigado

Off-topic: anolsi discordo da tua frase de Um bom programador é um grande preguiçoso..., acho que ficava melhor Um bom programador é um grande curioso...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Já agora outra alternativa:

        Dim txtLines() As String
        txtLines = My.Computer.FileSystem.ReadAllText("C:\textfile.txt").Split(vbNewLine)
        For Each line As String In txtLines
            Debug.Write(line.ToString)
        Next

anolsi,

Não compliques!

Um abraço

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Já agora outra alternativa:

        Dim txtLines() As String
        txtLines = My.Computer.FileSystem.ReadAllText("C:\textfile.txt").Split(vbNewLine)
        For Each line As String In txtLines
            Debug.Write(line.ToString)
        Next

anolsi,

Não compliques!

Um abraço

Mas eu já tive problemas a ler cedilhados, acentos. Eram comidos pelo ReadAllText. E desta maneira não.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Já agora outra alternativa:

        Dim txtLines() As String
        txtLines = My.Computer.FileSystem.ReadAllText("C:\textfile.txt").Split(vbNewLine)
        For Each line As String In txtLines
            Debug.Write(line.ToString)
        Next

anolsi,

Não compliques!

Um abraço

Fizeste-me fechar o Visual Basic Express, mas ainda vou abrir para experimentar da tua maneira, já que da maneira do anolsi me deu umas cenas esquisitas e deixo essa maneira para ver e entender amanhã. LOL :D

Mas eu já tive problemas a ler cedilhados, acentos. Eram comidos pelo ReadAllText. E desta maneira não.

Por acaso comigo nunca deu qualquer problema. :thumbsup:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mas eu já tive problemas a ler cedilhados, acentos. Eram comidos pelo ReadAllText. E desta maneira não.

Isso usa-se mais para copiar ficheiros byte a byte e não para ler ficheiros. O problema dos cedilhados, acentos, etc, está relacionado com a codificação do ficheiro. Nesse caso utilizas StreamReader e defines uma codificação. Ex:

Dim sr As New StreamReader(Ficheiro, Encoding.Default)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Fizeste-me fechar o Visual Basic Express, mas ainda vou abrir para experimentar da tua maneira, já que da maneira do anolsi me deu umas cenas esquisitas e deixo essa maneira para ver e entender amanhã. LOL :D

Mas o metodo do anolsi também funciona! :thumbsup:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bom, acabei por usar o teu jpaulino, thx :)

Obrigado também ao anolsi, pelo esforço e trabalho realizado (apesar de eu ter usado o do jpaulino, pois era o tal código que usava mas que me tinha esquecido :P), e obrigado também pelas dicas do &= e do Chrw ;)

Obrigado aos dois :D

[glow=green,2,300]RESOLVIDO

:D[/glow]

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