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

leticiaxc

[Resolvido] Modificar uma linha especifica de um txt

Recommended Posts

leticiaxc

olá a todos!

sou nova por aqui e sou nova em vb.net.

criei coragem e resolvi fazer uma pegunta pois achei uma pegunta igual só que não haviam respostas...  :P

estou com uma dificuldade parecida que essa pessoa:

http://www.portugal-a-programar.pt/index.php?showtopic=21190

eu estou fazendo um programa que deve ler um txt, e se nesse txt conter uma determinada palavra, troca-la por outra palavra. Já tentei o replace e o if, mas não funciona... será que alguém sabe o que estou fazendo de errado?  :dontgetit:

meu codigo atual..

essa sub fica no evento click de um botão, só que eu clico no botão e não acontece nada, nem aparece erro nenhum...

    Private Sub TrocaString()


        plano = CreateObject("Scripting.FileSystemObject")
        relatorio = plano.OpenTextFile("C\teste.txt")

        If System.IO.File.Exists("C:\teste.txt") = True Then 'testa se o arquivo existe

            While relatorio.AtEndOfStream <> True
                fLinha = relatorio.Readline ' lê as linhas


                If fLinha = "exemplo" Then 
                    fLinha.Replace("exemplo", "legal") 'trocar por legal

                   Messagebox.show("Arquivo alterado!")
                End If

            End While

            
        Else
            MessageBox.Show("Arquivo não encontrado!") ' se o arquivo não for encontrado, messagebox

        End If


    End Sub

Grata desde já!  :cheesygrin:


Se fosse fácil achar o caminho das pedras, tantas pedras no caminho não seria ruim.. [H. Gessinger]

Share this post


Link to post
Share on other sites
Tim§id€

olá a todos!

sou nova por aqui e sou nova em vb.net.

criei coragem e resolvi fazer uma pegunta pois achei uma pegunta igual só que não haviam respostas...  :P

estou com uma dificuldade parecida que essa pessoa:

http://www.portugal-a-programar.pt/index.php?showtopic=21190

eu estou fazendo um programa que deve ler um txt, e se nesse txt conter uma determinada palavra, troca-la por outra palavra. Já tentei o replace e o if, mas não funciona... será que alguém sabe o que estou fazendo de errado?  :dontgetit:

meu codigo atual..

essa sub fica no evento click de um botão, só que eu clico no botão e não acontece nada, nem aparece erro nenhum...

    Private Sub TrocaString()


        plano = CreateObject("Scripting.FileSystemObject")
        relatorio = plano.OpenTextFile("C\teste.txt")

        If System.IO.File.Exists("C:\teste.txt") = True Then 'testa se o arquivo existe

            While relatorio.AtEndOfStream <> True
                fLinha = relatorio.Readline ' lê as linhas


                If fLinha = "exemplo" Then 
                    fLinha.Replace("exemplo", "legal") 'trocar por legal

                   Messagebox.show("Arquivo alterado!")
                End If

            End While

            
        Else
            MessageBox.Show("Arquivo não encontrado!") ' se o arquivo não for encontrado, messagebox

        End If


    End Sub

Grata desde já!  :cheesygrin:

O que tu queres e tipo abrir um ficheiro txt por exemplo no disco C:\letras.txt

abrilo no programa e depois mudificalo de salvar o texto modificado!?

!?


...º(>_<)º...

Share this post


Link to post
Share on other sites
anolsi

Tens aqui exemplos de como trabalhar com ficheiros de texto em VB.net


"Nós somos o que fazemos repetidamente, a excelência não é um feito, e sim, um hábito."
Não respondo a questões por PM que possam ser colocadas no fórum!

Share this post


Link to post
Share on other sites
jpaulino

Olá,

Duas coisas sobre o código que mostraste:

1º Isto não faz nada!

fLinha.Replace("exemplo", "legal") 

Os seja, o resultado devolvido é que tem a alteração e para poderes utilizar esse valor tens de fazer algo:

Dim result As String = fLinha.Replace("exemplo", "legal") 

Neste momento a variável "result" tem a string com a alteração.

2º Para se alterar um ficheiro de texto tens de criar um novo StreamWriter e à medida que percorres o ficheiro original, colocas lá (no StreamWriter) o que queres no resultado final.

Podes ver alguns exemplos: VB.NET: Utilização de Ficheiros de Texto

Share this post


Link to post
Share on other sites
leticiaxc

obrigada pela respostas!!  :confused:

2º Para se alterar um ficheiro de texto tens de criar um novo StreamWriter e à medida que percorres o ficheiro original, colocas lá (no StreamWriter) o que queres no resultado final.

é possível botar o StreamWriter dentro do while? ou deveria usa-lo depois do "If System.IO.File.Exists("C:\teste.txt") = True Then .."

o ideal seria que o programa abrisse o txt, mas sem que o usuário pudesse visualiza-lo, alterasse a fLinha e salvasse o arquivo já alterado... será que isso é possível?  🤔


Se fosse fácil achar o caminho das pedras, tantas pedras no caminho não seria ruim.. [H. Gessinger]

Share this post


Link to post
Share on other sites
Hellblazer

Pelo bloco de notas nao consigo confirmar mas tenta:

Imports System.IO

Public Class Form1


    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Dim strPath = "C:\teste.txt"
        Dim fs As New FileStream(strPath, FileMode.Open)
        Dim sr As New StreamReader(fs)
        Dim strFile As String

        strFile = sr.ReadToEnd()
        sr.Close()

        Dim fstwo As New FileStream(strPath, FileMode.Create)

        strFile = strFile.Replace("flinha_por_exemplo", "novo texto")

        Dim sw As New StreamWriter(fstwo)

        sw.Write(strFile)

        sw.Flush()
        sw.Close()

    End Sub

End Class


There are two ways to write error-free programs; only the third one works.

Share this post


Link to post
Share on other sites
leticiaxc

funcionou perfeitamente!  :cheesygrin:

muito obrigada, eu já tinha feito de tudo e não conseguia arrumar isto!!!

valeu mesmo!!  :confused:


Se fosse fácil achar o caminho das pedras, tantas pedras no caminho não seria ruim.. [H. Gessinger]

Share this post


Link to post
Share on other sites
Hellblazer

de nada :confused:

nao te esquecas de por no nome do topico resolvido :)


There are two ways to write error-free programs; only the third one works.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.