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

Weasel

[Vb.NET '05] Ler e alterar um ficheiro de texto [RESOLVIDO]

8 mensagens neste tópico

Boas pessoal, é o seguinte eu preciso de fazer uma aplicação que possa ler e alterar um ficheiro de texto.

A estrutura do ficheiro é a seguinte:

[table]

[/table]

E o que eu preciso fazer é por exemplo alterar o valor da velocidade por exemplo. tendo que ler esse valor de um ficheiro de estrutura igual (mas o valor é diferente).

A estrutura do ficheiro não pode ser alterada dado que é usado/criado por outro programa.

Eu ainda ia lá tratando-o como se fosse um ficheiro .INI mas isto não tem as secções [Nome] não dá....

Como posso fazer ? Alguém me dá uma dica ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

experimenta assim...

        'texto a ser editado
        Dim texto() As String = {"Chave=valor	nome=ABCD	velocidade=50	versao=5.0"}
        'variaveis que representam os valores da chave, nome, velocidade e versao
        Dim chave, nome, velocidade, versao As String

        'char que vamos usar como divisor e que se encontra entre cada valor.
        'ex. Chave=valorDIVISORnome=ABCD
        Dim break() As Char = {"	"}
        texto = texto(0).Split(break) 'separamos o texto
        chave = texto(0) 'atribuimos o valor da chave à chave
        nome = texto(1) 'atribuimos o valor do nome ao nome
        velocidade = texto(2) 'atribuimos o valor da velocidade à velocidade
        versao = texto(3) 'atribuimos o valor da versao à versao

        'removemos o texto desnecessario
        chave = chave.Replace("Chave=", "")
        nome = nome.Replace("nome=", "")
        velocidade = velocidade.Replace("velocidade=", "")
        versao = versao.Replace("versao=", "")

        'so para testar mostramos tudo numa messagebox
        MsgBox(chave & Environment.NewLine & nome & Environment.NewLine & velocidade & Environment.NewLine & versao)

espero que seja o que pretendes.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não é bem isso.

É que eu quero ler um ficheiro que texto que tem aquela estrutura e alterar somente os valores (ou seja o texto que está depois dos "="), e nem é para alterar todos é para alterar por exemplo a velocidade. que no exemplo que dei está velocidade=50 alterar para velocidade=100

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

entao queres ler o texto a partir de um ficheiro e depois alterar os valores certo?

O codigo que te mostrei era so pa te mostrar como podes isolar os valores do resto de modo a poderes altera-los.

Basta leres o texto para um ficheiro, fazeres como no codigo que te dei, alterares os valores, e voltares a colocar tudo como estava. Caso o ficheiro de texto tenha varias linhas daquelas que deste então convem que leias linha a linha.

Penso que é isso certo?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas eu para ler o ficheiro estou a fazer assim:

Dim oRead, oRead1 As StreamReader
Dim i As Integer = 0
Dim codutf As System.Text.Encoding = System.Text.Encoding.GetEncoding("ISO-8859-1")
Dim break() As Char = {"="}
Dim texto As String

oRead = New StreamReader("c:\parms.dat", codutf)
While Not oRead.EndOfStream
  names.Add(oRead.ReadLine())
End While
oRead.Close()



While (i <= names.Count - 1)

'Aqui foi só para testar se estava a ler bem
ListBox1.Items.Add(names(i).ToString)  

'Aqui dá erro não dá para usar assim como posso fazer para obter o texto que está antes do "="
texto = names(i).ToString.Split(break)   

i = i + 1
End While

O erro que dá é :

[glow=limegreen,2,300]Error 3 Value of type '1-dimensional array of String' cannot be converted to 'String'. C:\....\Form1.vb 25 21 paramSET

[/glow]

Gostava de saber como posso obter o texto que está antes do "=" e já agora, como posso depois escrever nesse mesmo local mas depois o "=" ou seja alterar o valor daquela "chave".

Obrigado!!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pauzinho a dua dica foi excelente, consegui adaptar a tua técnica ao meu caso na perfeição obrigado :(

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