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

leticiaxc

Numerar linhas de um txt

3 mensagens neste tópico

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"..  :hmm:

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

muito obrigada pela dica!

vou tentar fazer algo desse genero!  :P

valeu!

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