INSERIR FINAL EM ARQUIVO TXT

LGIA 25/02/2013 11:12:20
#419598
bom dia

estou precisando de uma função que ao ler um arquivo txt e, se no final do arquivo não tiver o numero [Ô]99[Ô] ele insere e quando este existir não inserir
agradeço a colaboração
at
luiz]
ALEVALE 25/02/2013 12:15:46
#419602
Em qual versão VB6 ou .NET ?
LGIA 25/02/2013 12:35:01
#419603
está em VB6
ALEVALE 25/02/2013 12:35:20
#419604
Em NET.

Public Shared Function ReadLastLine(ByVal path As String) As String
Dim retval As String = [Ô][Ô]
Dim fs As FileStream = New FileStream(path, FileMode.Open)
Dim pos As Long = fs.Length - 2

While pos > 0
fs.Seek(pos, SeekOrigin.Begin)
Dim ts As StreamReader = New StreamReader(fs)
retval = ts.ReadToEnd
Dim eol As Integer = retval.IndexOf([Ô][Ô] & Microsoft.VisualBasic.Chr(10) & [Ô][Ô])

If eol >= 0 Then
fs.Close()
Return retval.Substring(eol + 1)
End If

System.Threading.Interlocked.Decrement(pos)
End While

fs.Close()
Return retval
End Function
MARCELO.TREZE 25/02/2013 13:15:19
#419607
Poxa ALVALE ta de sacanagem, rs.... pergunta se é vb6 ou vb.net, e ele responde que é vb6, e vc posta codigo .net......rsrsrsrs é brincadeira

bom o código seria este


Private Sub Command1_Click()
Dim PathName As String
Dim InLine As String
Dim TempFile As String
Dim F As Integer
Dim F2 As Integer

PathName = [Ô]c:    este.txt[Ô]
TempFile = App.Path & Format(Time, [Ô]hhnnss[Ô]) & [Ô].TMP[Ô][txt-color=#007100] [ô] arquivo temporário não altere nada nesta linha[/txt-color]
F = FreeFile
Open PathName For Input As #F
F2 = FreeFile
Open TempFile For Output As #F2
Do While Not EOF(F)
Line Input #F, InLine
If EOF(F) = True Then
If InStr(1, [Ô]99[Ô], InLine) = 0 Then
Print #F2, InLine & [Ô]99[Ô]
End If
Else
Print #F2, InLine
End If

Loop
Close #F
Close #F2
[txt-color=#007100][ô]
[ô] Troca o arquivo antigo pelo novo
[ô][/txt-color]
Kill PathName
Name TempFile As PathName
End Sub

ALEVALE 25/02/2013 13:27:45
#419608
Malz ia posta nos 2 mas a segunda parte não colou....rsrsrsrs
FEDERHEN 25/02/2013 13:56:59
#419609
Não tem sentido responder o que não é perguntado.

Se o cara tem dúvida em VB6, para que responder em net????
Além do mais, a duvida esta lançada no forum de VB6...

O SER HUMANO TEM A MANIA DE COMPLICAR...
LGIA 25/02/2013 14:46:57
#419614
agradeço ao ALEVALE pela boa vontade, mas o exemplo do treze deu QUASE certo. é que quando eu chamo o arquivo ele coloca o final 99, mas quando chamo novamente o arquivo ele tira o final 99 e volta ao que era antes, e assim sucessivamente....
luiz
MARCELO.TREZE 25/02/2013 18:50:15
#419630
Não foi maldade do ALVALE não ele postou o que ele tinha, eu só brinquei.

quanto a não dar certo posta como ficou seu código

LGIA 26/02/2013 09:11:07
#419637
private sub command1_click()
Dim PathName As String
Dim InLine As String
Dim TempFile As String
Dim F As Integer
Dim F2 As Integer

PathName = Anexa.TxtOrigem
TempFile = App.Path & Format(Time, [Ô]hhMMss[Ô]) & [Ô].TMP[Ô] [ô] arquivo temporário não altere nada nesta linha
F = FreeFile
Open PathName For Input As #F
F2 = FreeFile
Open TempFile For Output As #F2
Do While Not EOF(F)
Line Input #F, InLine
If EOF(F) = True Then
If InStr(1, [Ô]99[Ô], InLine) = 0 Then
Print #F2, InLine & vbCrLf & [Ô]99[Ô]
End If
Else

Print #F2, InLine
End If

Loop
Close #F
Close #F2
[ô]
[ô] Troca o arquivo antigo pelo novo
[ô]
Kill PathName
Name TempFile As PathName
end sub

só fiz uma pequena mudança no print para que o 99 ficasse abaixo da linha
luiz
Faça seu login para responder