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

leticiaxc

Numerar linhas de um txt

Recommended Posts

leticiaxc

olá a todos!

estou novamente com dúvidas sobre arquivos txt..  😳

preciso que uma parte do meu programa faça o seguinte:

leia um txt, encontre uma linha específica e se encontrar essa linha x alterar a linha de baixo.. 

estava pensando que houvesse uma maneira de "numerar" as linhas, e se conter o texto "eu sou feliz" na linha 20 (por exemplo), alterar a linha 21 para "legal".. acho que deve existir uma forma de localizar essa linha e depois no código colocar "linha x + 1"..  🤔

a parte de abrir o txt eu sei, só não sei como númerar as linhas.. :/

alguém sabe como posso fazer isso?  😳

muito obrigada mesmo assim!  :D


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
Weasel

Não precisas de andar a numerar as linhas, nem tem muita logica, por exemplo a linha que queres alterar é a 20, basta que se adicione uma nova linha antes dessa que já vais ter problemas.

Tens é que ler o ficheiro linha a linha até encontrares a linha pretendida ou seja a linha que for igual a "eu sou feliz", e alterar a linha seguinte.

Ou seja algo deste género (não testado, escrevi aqui directamente):

Dim alterar As Boolean = False
Dim Texto As String = ""
Dim Linha() As String = Strings.Split(My.Computer.FileSystem.ReadAllText("FICHEIRO.TXT", System.Text.Encoding.Default), ControlChars.CrLf)
        'Verifica linha a linha
        For i As Integer = 0 To Linha.Length - 1
            'Se não estiver vazia...
            If Linha(i) <> "" Then

                'Altera o Conteúdo
                if (alterar = True) Then
                   Linha(i) = "legal"
                   alterar = False
                End If
                

                'Verifica o conteúdo
                If (Linha(i) = "eu sou feliz") Then
                  alterar = True  
                End If
               
                Texto &= Linha(i) & ControlChars.CrLf
            End If
        Next
        'Re-escreve o texto no ficheiro
        My.Computer.FileSystem.WriteAllText("FICHEIRO.TXT", Texto, False, System.Text.Encoding.Default)


Knowledge to the masses


Share this post


Link to post
Share on other sites
leticiaxc

muito obrigada pela dica!

vou tentar fazer algo desse genero!  :P

valeu!


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

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.