ARQUIVOS BINARIOS

USUARIO.EXCLUIDOS 09/03/2004 17:50:08
#14753
Pessoal to tentando trabalhar com arquivos binários mas na hora que eu mando salvar ele ta salvando um arquivo com 0 bytes será que alguém pode me ajudar?

Segue aki o Código Fonte por favor me digam aonde estou errando

Option Explicit ' Força declarar todas as variáveis, senão dá erro
Public Abrir As String
Public Abrir2 As String
Public Medir As Integer
Public AQV1 As String
Public AQV2 As String
Public G1 As String
Public G2 As String
Public SV As String
Public SV1 As String

Private Sub CMB1_Click()
Abrir = FreeFile
CommonDialog1.CancelError = True
On Error GoTo oerro
CommonDialog1.Filter = "Arquivos Binários (*.Bin)|*.bin|"
CommonDialog1.ShowOpen
AQV1 = CommonDialog1.FileName
Open AQV1 For Binary As Abrir
TXT1.Text = CommonDialog1.FileName
Get Abrir, 1, G1
Exit Sub
oerro:
MsgBox "Erro ao Abrir o Arquivo", vbInformation
End Sub
Private Sub CMB2_Click()
Abrir2 = FreeFile
CommonDialog1.CancelError = True
On Error GoTo oerro
CommonDialog1.Filter = "Arquivos Binários (*.Bin)|*.bin|"
CommonDialog1.ShowOpen
AQV2 = CommonDialog1.FileName
Open AQV2 For Binary As Abrir2
LOF (Abrir2)
TXT2.Text = CommonDialog1.FileName
Get Abrir2, 1, G2
Exit Sub
oerro:
MsgBox "Erro ao Abrir o Arquivo", vbInformation
End Sub
Private Sub CMB4_Click()
SV = FreeFile
CommonDialog1.Filter = "Arquivos Binários (*.Bin)|*.bin|"
CommonDialog1.ShowSave
SV1 = CommonDialog1.FileName
If SV1 "" Then
Open SV1 For Binary As SV
Put SV, 1, G1
Put SV, , G2
Else
On Error GoTo oerro
oerro:
MsgBox "Erro ao Salvar o Arquivo", vbInformation
End If
End Sub
USUARIO.EXCLUIDOS 11/03/2004 01:34:19
#14914
Resposta escolhida
Tente isso:
Option Explicit ' Força declarar todas as variáveis, senão dá erro
Public Abrir As String
Public Abrir2 As String
Public Medir As Integer
Public AQV1 As String
Public AQV2 As String
Public G1 As String
Public G2 As String
Public SV As String
Public SV1 As String

Private Sub CMB1_Click()
Abrir = FreeFile
CommonDialog1.CancelError = True
On Error GoTo oerro
CommonDialog1.Filter = "Arquivos Binários (*.Bin)|*.*|"
CommonDialog1.ShowOpen
AQV1 = CommonDialog1.FileName
Open AQV1 For Binary As Abrir
G1 = String(LOF(Abrir), Chr(0))
TXT1.Text = CommonDialog1.FileName
Get Abrir, 1, G1
Exit Sub
oerro:
MsgBox "Erro ao Abrir o Arquivo", vbInformation
End Sub
Private Sub CMB2_Click()
Abrir2 = FreeFile
CommonDialog1.CancelError = True
On Error GoTo oerro
CommonDialog1.Filter = "Arquivos Binários (*.Bin)|*.*|"
CommonDialog1.ShowOpen
AQV2 = CommonDialog1.FileName
Open AQV2 For Binary As Abrir2
G2 = String(LOF(Abrir2), Chr(0))
TXT2.Text = CommonDialog1.FileName
Get Abrir2, 1, G2
Exit Sub
oerro:
MsgBox "Erro ao Abrir o Arquivo", vbInformation
End Sub
Private Sub CMB4_Click()
SV = FreeFile
CommonDialog1.Filter = "Arquivos Binários (*.Bin)|*.bin|"
CommonDialog1.ShowSave
SV1 = CommonDialog1.FileName
If SV1 "" Then
Open SV1 For Binary As SV
Put SV, 1, G1
Put SV, , G2
Else
On Error GoTo oerro
oerro:
MsgBox "Erro ao Salvar o Arquivo", vbInformation
End If
End Sub


O problema é que para gravar é preciso ter o que gravar, e se você não pega as informações não grava nada.

veja:
Open AQV1 For Binary As Abrir
G1 = String(LOF(Abrir), Chr(0)) ' Essa linha é fundamental pois prepara a variável para comportar o conteúdo do arquivo. Ou seja sem ela o método Get retornará sempre uma stringo de comprimento zero.
TXT1.Text = CommonDialog1.FileName
Get Abrir, 1, G1
Close Abrir
Open AQV2 For Binary As Abrir2
G2 = String(LOF(Abrir2), Chr(0))' mesmo comentário do g1. Era nessas linhas que você estava errando.
TXT2.Text = CommonDialog1.FileName
Get Abrir2, 1, G2
Close Abrir2
Tópico encerrado , respostas não são mais permitidas