Ir para o conteúdo
encore

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

Mensagens Recomendadas

encore

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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
encore

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,

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
encore

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.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Caça

O teu utilizador não tem permissões para escrever na raiz do C:, tenta numa localização diferente.


Pedro Martins

Não respondo a duvidas por PM

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
encore

pois, gostava que fosse isso, sou domain admin.

manualmente consigo copiar o ficheiro para qualquer pasta, através do script, nem para uma pasta de c:\user\ consigo.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Caça

Por motivos de segurança, os únicos sítios onde deves escrever ficheiros são a pasta AppData do utilizador actual ou a pasta onde está o programa, a pasta Temp do windows, etc.


Pedro Martins

Não respondo a duvidas por PM

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
encore

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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
José Lopes

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


Quando te pedirem peixe.... ensina-os a Pescar!!Hum..lálálálá!!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Caça

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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
encore

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

Partilhar esta mensagem


Ligação 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

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.