bitoinfo Postado Março 6, 2005 Denunciar Share Postado Março 6, 2005 alguém pode olhar este script e me dizer porque da este erro?erro: file already openna linha em negritoPrivate Sub contas_pg()Dim n, m As StringDim linha(7) As StringDim i, j As Integern = FreeFile()m = FreeFile()i = 1Open "f:\controle de contas\dados.txt" For Input As #nDo While Not EOF(n) For j = 0 To 7 Line Input #n, linha(j) Next If linha(1) = "P" Then i = i + 1 Open "f:\controle de contas\contas_pagas.txt" For Output As #m For j = 0 To 7 Print #m, linha(j) Next End IfLoopClose #mClose #nsomaEnd Sub Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Março 7, 2005 Denunciar Share Postado Março 7, 2005 O problema está em...n = FreeFile() m = FreeFile() ... que atribui o mesmo valor para "n" e para "m". O correto seria fazer... n = FreeFile() Open "f:\controle de contas\dados.txt" For Input As #n m = FreeFile()... daí "n" e "m" teriam valores diferentes (uma vez que o número de arquivo utilizado em "n" já estaria aberto de verdade).Certo? Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ramon Postado Março 7, 2005 Denunciar Share Postado Março 7, 2005 Exatamente Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
bitoinfo
alguém pode olhar este script e me dizer porque da este erro?
erro: file already open
na linha em negrito
Private Sub contas_pg()
Dim n, m As String
Dim linha(7) As String
Dim i, j As Integer
n = FreeFile()
m = FreeFile()
i = 1
Open "f:\controle de contas\dados.txt" For Input As #n
Do While Not EOF(n)
For j = 0 To 7
Line Input #n, linha(j)
Next
If linha(1) = "P" Then
i = i + 1
Open "f:\controle de contas\contas_pagas.txt" For Output As #m
For j = 0 To 7
Print #m, linha(j)
Next
End If
Loop
Close #m
Close #n
soma
End Sub
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.