encore Posted February 27, 2012 Report Share Posted February 27, 2012 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 More sharing options...
Caça Posted February 27, 2012 Report Share Posted February 27, 2012 O que é que não estás a conseguir fazer? Pedro Martins Não respondo a duvidas por PM Link to comment Share on other sites More sharing options...
encore Posted February 27, 2012 Author Report Share Posted February 27, 2012 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 More sharing options...
encore Posted February 27, 2012 Author Report Share Posted February 27, 2012 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 More sharing options...
Caça Posted February 27, 2012 Report Share Posted February 27, 2012 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 Link to comment Share on other sites More sharing options...
encore Posted February 27, 2012 Author Report Share Posted February 27, 2012 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. Link to comment Share on other sites More sharing options...
Caça Posted February 27, 2012 Report Share Posted February 27, 2012 Isso não quer dizer nada, isso acontece por motivos de segurança. Pedro Martins Não respondo a duvidas por PM Link to comment Share on other sites More sharing options...
encore Posted February 27, 2012 Author Report Share Posted February 27, 2012 o script faz um overwrite ao ficheiro em c:\txt e não tem permissão para copiar o ficheiro para c:\txt\txt ? Link to comment Share on other sites More sharing options...
Caça Posted February 27, 2012 Report Share Posted February 27, 2012 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 Link to comment Share on other sites More sharing options...
encore Posted February 27, 2012 Author Report Share Posted February 27, 2012 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 Link to comment Share on other sites More sharing options...
José Lopes Posted February 27, 2012 Report Share Posted February 27, 2012 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á!! Link to comment Share on other sites More sharing options...
Caça Posted February 27, 2012 Report Share Posted February 27, 2012 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 More sharing options...
encore Posted February 27, 2012 Author Report Share Posted February 27, 2012 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 More sharing options...
Caça Posted February 27, 2012 Report Share Posted February 27, 2012 Mostra o teu código actual. Pedro Martins Não respondo a duvidas por PM Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now