Jump to content

Alteração de Texto referente a varios ficheiros numa directoria


encore
 Share

Recommended Posts

Boa Tarde,

Peço desculpa se já existe post relativo a esta dúvida, mas não o consigo encontrar.

O que pretendo é que o programa:

(1) abra todos os ficheiros (*.txt) numa determinada directoria;

(2) proceda à alteração de determinados campos;

(3) grave noutra localização mantendo o nome do ficheiro.

até ao momento consigo fazer a parte (2)

estou a utilizar o "My.Computer.FileSystem.ReadAllText" para esta operação, mas parece-me algo limitada, para o que quero fazer.

penso que é suposto fazer uma combinação com o "My.Computer.FileSystem.GetFiles"

----------------------------------------------------

Option Strict On
Option Explicit On
Option Infer On

Imports System
Imports System.IO


Dim text = My.Computer.FileSystem.ReadAllText("C:\txt\txt.txt")
            If text.Contains("ola") Then
            
               text = text.Replace("0001", "1000")
            
            End If
		If text.Contains("adeus") Then
            text = text.Replace("azul", "amarelo")
                   Else
            MsgBox("não existe")
        End If
        My.Computer.FileSystem.WriteAllText("C:\txt\txt.txt", text, False)

Obrigado e Cumprimentos,

EDIT: GeSHi adicionado

Link to comment
Share on other sites

bem, após mais umas tentativas, já consegui que ele lesse todos os files existentes e executasse as alterações no conteudo do texo:

desta forma:

Dim gfile = My.Computer.FileSystem.GetFiles("C:\VBMIRS")

        Dim fileoutput As String = ("c:\vbmirs\converted")

        Dim fileinput As String

        For Each fileinput In gfile

            Dim text = My.Computer.FileSystem.ReadAllText(fileinput)

agora falta-me só o passo 3, que é manter o ficheiro intacto na directoria corrente (fileinput) e copiá-lo com as alterações já efectuadas para outra location (fileoutput)

obrigado,

Link to comment
Share on other sites

Termino o codigo com:

My.Computer.FileSystem.WriteAllText("c:\txt, text, False)

ou seja, guardar noutra localização, e ele dá-me o erro de:

System.UnauthorizedAccessException was unhandled

  Message=Access to the path 'C:\txt' is denied.

  Source=mscorlib

Make sure you have sufficient privileges to access this resource.

Link to comment
Share on other sites

Obrigado!

Mas nao existe outra forma?

Tenho 2 aplicacoes a correr (nao desenvolvidas por mim) que fazem isso para qualquer directoria em c: ou rede

Assim é mais seguro.


Tens o nome do ficheiro bem...para lidares em codigo com ele não precisas da extensão nem nada???

Para trabalhar com o ficheiro não é preciso ter nenhuma extensão indicada, basta que ele exista e não esteja corrompido.

Pedro Martins

Não respondo a duvidas por PM

Link to comment
Share on other sites

Ola de novo,

Desde ja obg pelas v/ respostas

A questao e que preciso de editar todos os ficheiros existentes numa pasta, editar determinada informacao e gravar numa pasta especifica tipo: c:\txt\txt , ficheiros estes que serao posteriormente importados por uma outra plataforma.

Se eu os gravar na pasta actual (c:\txt) funciona perfeitamente fazendo um overwrite, nao me funciona e gravando em c:\txt\txt

Obrigado

Link to comment
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
 Share

×
×
  • Create New...

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.