LER ARQUIVOS TXT E EXCLUIR LINHAS

JEFFERMARTINS 17/03/2011 09:35:47
#368233
Bom dia!!!

Galera, tô quebrando a cabeça para tentar fazer algo....Mais ate agora nda..rsrs

Trabalho em uma Contabilidade, e todos os meses, tenho que transmitir os arquivos e ECF para o SEFAZ, porém, tenho uma rede de Supermercados que gera, em torno de 2500 p/ mês. Alguns desses arquivos âpresentam 02 linhas desnecessárias, é possivel criar uma rotina para ler o arquivo e excluir essas linhas?

Assim, coloco todos os arquivos com [Ô]erro[Ô] em uma pasta e uma aplicação varre todos os arquivos e exclui as linhas...


Valeu pela ajuda..
JONATHANSTECKER 17/03/2011 09:57:50
#368237
Resposta escolhida
Citação:

é possivel criar uma rotina para ler o arquivo e excluir essas linhas?



Com certeza!

Vamos lá, passe um exemplo dessas linhas desnecessárias.
JEFFERMARTINS 17/03/2011 10:13:59
#368240
Ola Jonathas,

Entao, com disse, o numero da linhas pode alterar, dependendo do modelo da impressora fiscal.
Contudo, as linhas que possuem os valores, T0099 e T0216 podem ser excluidas.
Esse valores, sempre são apresentados, com inicio na coluna 55 até a 59.


Obrigado!
JONATHANSTECKER 17/03/2011 10:23:05
#368244
Ou seja, sempre que alguma das linhas do arquivo iniciar com os números de 55 até 59 podem ser excluídos!
é isso?
JEFFERMARTINS 17/03/2011 10:25:26
#368246
Nao...
sempre que nas posições, de 55 a 59 houve algum desse valores: T0099 e T0216 podem ser excluidas.
JONATHANSTECKER 17/03/2011 11:13:40
#368253
Feito!
Se não entender poste ai que explico.

Imports System.Text
Imports System.IO


    [ô][ô][ô] <summary>
[ô][ô][ô] Define o local onde estão os arquivos contendo as frases desnecessárias
[ô][ô][ô] </summary>
Private Local As String = [Ô]D:\ArquivosERRO\[Ô]

Private Sub btnLimparArquivo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLimparArquivo.Click
ExluirLinha(Local & [Ô]Teste.txt[Ô])
End Sub

[ô][ô][ô] <summary>
[ô][ô][ô] Exclui uma liha especifica de um arquivo de texto
[ô][ô][ô] </summary>
[ô][ô][ô] <param name=[Ô]pArquivo[Ô]>Arquivo de texto</param>
Protected Sub ExluirLinha(ByVal pArquivo As String)
Dim Arquivo As StreamWriter
Dim Linhas As New List(Of String)

Using SR As New StreamReader(pArquivo)
Linhas.AddRange(System.IO.File.ReadAllLines(pArquivo.ToString))
SR.Dispose()
SR.Close()
End Using

Arquivo = New StreamWriter(pArquivo)
For Each Linha As String In Linhas.ToArray
If Not PodeApagar(Linha) Then
Arquivo.WriteLine(Linha)
End If
Next
Arquivo.Close()
End Sub

[ô][ô][ô] <summary>
[ô][ô][ô] Verifica se existe algumas palavras especificas no texto
[ô][ô][ô] </summary>
[ô][ô][ô] <param name=[Ô]pTexto[Ô]>Texto</param>
[ô][ô][ô] <returns><c>True</c> se existir alguma dessas palavras especificas</returns>
Protected Function PodeApagar(ByVal pTexto As String) As Boolean
Dim Palavras() As String = Split(pTexto, [Ô] [Ô])
For Contador As Integer = 0 To UBound(Palavras)
If Palavras(Contador) = [Ô]T0099[Ô] Or Palavras(Contador) = [Ô]T0216[Ô] Then
Return True
End If
Next
Return False
End Function
JEFFERMARTINS 17/03/2011 11:32:44
#368259
Obrigado pela ajuda...

Entao, fiz um form, e no evento do botao coloquei o código, porem, qdo executo, da erro: Não foi possível localizar o arquivo [ô]D:\ArquivosERRO    este.txt[ô].

Já criei a pasta ArquivosErro na unidade D:, e existe o arquivo teste.txt
JONATHANSTECKER 17/03/2011 11:37:05
#368260
Estranho
Aqui funcionou perfeitamente!

Tente alterar o caminho para algum outro diretório já existente.

    Private Sub btnLimparArquivo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLimparArquivo.Click
ExluirLinha([Ô]Informe aqui o caminho do arquivo .TXT[Ô])
End Sub
JEFFERMARTINS 17/03/2011 11:46:01
#368261
Ola Joathan....

Tbm achei estranho......mudei o local e tbm nao foi...

Por favor, ve se esta td certo, no arquivo anexo.

Abraço!
JONATHANSTECKER 17/03/2011 11:52:22
#368262
    [ô][ô][ô] <summary>
[ô][ô][ô] Define o local onde estão os arquivos contendo as frases desnecessárias
[ô][ô][ô] </summary>
Private Local As String = [Ô]C:\ArquivosErro    este.txt[Ô] [ô] AQUI ESTÁ NO DIRETÓRIO C:

Private Sub btnLimparArquivo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLimparArquivo.Click
ExluirLinha(Local & [Ô]teste.txt[Ô]) [ô] AQUI VOCÊ ESTÀ CHAMANDO ASSIM: C:\ArquivosErro    este.txt.texte.txt
End Sub


Faça assim
Crie o arquivo: C:\ArquivosErro    este.txt
E substitua os métodos abaixo no seu código.

    [ô][ô][ô] <summary>
[ô][ô][ô] Define o local onde estão os arquivos contendo as frases desnecessárias
[ô][ô][ô] </summary>
Private Local As String = [Ô]C:\ArquivosErro    este.txt[Ô]

Private Sub btnLimparArquivo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLimparArquivo.Click
ExluirLinha(Local)
End Sub


Obs.: Já não altero o código fonte porque só tenho acesso ao VB.2005 aqui na empresa.
JEFFERMARTINS 17/03/2011 13:14:36
#368269
Entao.. ta dificil

Continua o mesmo erro...

Na janela de verificação, tbm aparce: A first chance exception of type [ô]System.IO.FileNotFoundException[ô] occurred in mscorlib.dll
Página 1 de 2 [18 registro(s)]
Tópico encerrado , respostas não são mais permitidas