ABRIR UM ARQ TXT E ALTERA-LO

USUARIO.EXCLUIDOS 10/09/2007 17:30:24
#234941
SENHORES,
TENHO UM ARQUIVO TXT ASSIM:

01/05/07 100 237
02/05/07 200 237
03/05/07 300 237
04/05/07 400 237
05/05/07 500 237
06/05/07 600 237
07/05/07 700 237

VCS CONHECEM ALGUM EXEMPLO QUE EU POSSA FAZER PELO VB DE ABRIR ESSE ARQUIVO E INCLUIR UM CERTO DADO NUMA CERTA COLUNA E SALVAOR O ARQUIVO SEM DISPOSICIONAR AS COLUNAS PARA A DIREITA?
NO EXEMPLO ACIMA, NO FINAL O ARQUIVO FICARIA ASSIM:

01/05/07 100 01 237
02/05/07 200 02 237
03/05/07 300 03 237
04/05/07 400 04 237
05/05/07 500 05 237
06/05/07 600 06 237
07/05/07 700 07 237

NOTEM QUEM EU INCLUI UM NUMERO SEQUENCIAL NA POSICAO 14 SEM DISPOSICIONAR OS CARACTERES PARA A DIREITA.

VEJAM O ARQUIVO COMO ESTAVA E DEPOIS COMO FICARIA:

01/05/07 100 237
02/05/07 200 237
03/05/07 300 237
04/05/07 400 237
05/05/07 500 237
06/05/07 600 237
07/05/07 700 237

01/05/07 100 01 237
02/05/07 200 02 237
03/05/07 300 03 237
04/05/07 400 04 237
05/05/07 500 05 237
06/05/07 600 06 237
07/05/07 700 07 237


CONHECEM ALGO PARECIDO???

UM ABRACO A TODOS

USUARIO.EXCLUIDOS 11/09/2007 06:47:05
#234975


Cara o q vc pode fazer é o seguinte

Como seus valores são fixos...crie umas arrays ou matrizes (DataEvento(300), por exemplo, abra o txt com o código abaixo e va preenchendo as matrizes mais ou menos assim

Para usar a função abaixo:
Text1.Text = AbreArquivo("C:\Texto.TXT")

Function AbreArquivo(sArquivo As String) As String
Dim iARQ As Integer
Dim sLinha As String
Dim sResult As String
Dim Contador as integer

Contador = 1

iARQ = FreeFile
Open sArquivo For Input As iARQ
Do While Not EOF(iARQ)

Line Input #iARQ, sLinha

Matriz1(Contador) = Left(sLinha, 8)
Matriz2(Contador) = Mid(sLinha, 10, 3)
Matriz3(Contador) = Right(sLinha, 3)

Contador = Contador + 1
Loop

Close iARQ
End Function


Assim ele vai preencher as matrizes e tal..

daí com uma 4ê matriz vc coloca esses novos códigos q deseja inserir e depois basta criar o txt novamente assim

Contador = Contador + 1
Open "C:\Texto.txt" for Output as #1

Print #1, Matriz1(Contador) & " " & Matriz2(Contador) & " " & Matriz4(Contador) & " " & Matriz3(Contador)

Close #1

Pronto....ahuahuahuaha...eu acho...to sem vb pra testar mas creio q assim poderá fazer...ou alguem com uma forma mais resumida apareça..mas entendeu a idéia?

Abraços e boa sorte


USUARIO.EXCLUIDOS 11/09/2007 10:52:20
#235009
Sinkertec,

veja o codigo abaixo como fiz (mas dá erro)
o erro é:
Sub or Function not defined. Esse erro dá quando chega na linha:
Matriz1(Contador)=Left(sLinha,8)


[c]Private Sub Form_Load()
Text1.Text = AbreArquivo("C:\Textos.TXT")
End Sub

Function AbreArquivo(sArquivo As String) As String
Dim iARQ As Integer
Dim sLinha As String
Dim sResult As String
Dim Contador As Integer

Contador = 1

iARQ = FreeFile
Open sArquivo For Input As iARQ
Do While Not EOF(iARQ)

Line Input #iARQ, sLinha

Matriz1(Contador) = Left(sLinha, 8)
Matriz2(Contador) = Mid(sLinha, 10, 3)
Matriz3(Contador) = Right(sLinha, 3)

Contador = Contador + 1
Loop

Close iARQ
End Function




USUARIO.EXCLUIDOS 11/09/2007 10:56:32
#235010


vc declarou as arrays?
Se fizer o código de baixo n funciona? qual erro dá?
USUARIO.EXCLUIDOS 11/09/2007 11:15:06
#235014
com declara as arrays (nunca fiz isso)

o erro que dá
quando chega na linha: Matriz1(Contador) = Left(sLinha, 8)

Sub or Function not defined.



USUARIO.EXCLUIDOS 11/09/2007 11:17:20
#235015

Assim... Dim Matriz(100) as String

ou seja...vc poderá colocar 100 itens

Matriz(1)
Matriz(2)

entendeu..faça isso no Declarations do Form
USUARIO.EXCLUIDOS 11/09/2007 13:17:33
#235045
Que tal pensar simples????
Esse negócio de trabalhar com matriz é bonito, mas não necessário para a finalidade a que é inserir uma nova coluna no arquivo.

Trabalhe com 2 arquivos, sendo um de leitura e outro de gravação.

1) Leia o primeiro arquivo;
2) Formate a linha a ser gravado no segundo arquivo;
3) Grave o segundo arquivo.

Ao término exclua o primeiro arquivo e renomeie o segundo com o nome do primeiro, tudo isso pode ser feito via aplicação.
USUARIO.EXCLUIDOS 11/09/2007 13:55:28
#235052

Como queira...o repert[orio aki é vasto! ahuahuhauhau

Lembrando q essa variável VALOR q coloquei é onde eu sei la o q está o código q quer inserir


Text1.Text = AbreArquivo("C:\Texto.txt")

Function AbreArquivo(sArquivo As String) As String
Dim iARQ As Integer
Dim sLinha As String
Dim sResult As String
Dim Contador As Integer

Kill "C:\Texto2.txt"

iARQ = FreeFile
Open sArquivo For Input As iARQ
Do While Not EOF(iARQ)

Line Input #iARQ, sLinha
sResult = left(sLinha, Len(sLinha) - 3)
sResult = sResult & Valor

Open "C:\Texto2.Txt" for Append as #1

Print #1, sResult

Close #1
sResult = ""
Loop

Close iARQ
End Function


para concluir

Kill "C:\Texto.txt"
FileCopy "C:\Texto2.txt", "C:\Texto.txt"
Kill "C:\Texto2.txt"

tenta ae ELSVB
Tópico encerrado , respostas não são mais permitidas