DUVIDA TECNICA
Dúvida técnica...
Seguinte, se faço este script, consigo ver o arquivo em forma binária, certo ?!
E com isso consigo enxergo em um TextBox toda a numeração dele:
Minha pergunta é:
Toda essa numeração retornada quando eu subdividi o array é em que formato ???
se eu fizer a inversão ([txt-color=#0000f0]Open ... For Binary Access Writer As # [/txt-color]) consigo recuperar o arquivo ?
Por favor, não é nenhum projeto...apenas estou querendo entender melhor o sistema binário e a forma correta de usar a instrução [Ô][txt-color=#0000f0]Open[/txt-color][Ô] e suas funções [Ô][txt-color=#0000f0]Get[/txt-color] & [txt-color=#0000f0]Input[/txt-color][Ô].
Seguinte, se faço este script, consigo ver o arquivo em forma binária, certo ?!
Dim b() As Byte
Dim fNum As Long
fNum = FreeFile
Open [Ô]C:\Arquivo.docx[Ô] For Binary Access Read As #fNum
ReDim b(1 To LOF(fNum))
Get fNum, , b()
Close fNum
E com isso consigo enxergo em um TextBox toda a numeração dele:
Dim t As String
Dim res As Long
For n = LBound(b) To UBound(b)
DoEvents
t = t & b(n) & [Ô] [Ô]
res = res + 1
LbCont.Caption = Format(res, [Ô]###,##0[Ô]) [ô] <= Só para ver a quantidade...
Next n
txtRes.Text = t
Minha pergunta é:
Toda essa numeração retornada quando eu subdividi o array é em que formato ???
se eu fizer a inversão ([txt-color=#0000f0]Open ... For Binary Access Writer As # [/txt-color]) consigo recuperar o arquivo ?
Por favor, não é nenhum projeto...apenas estou querendo entender melhor o sistema binário e a forma correta de usar a instrução [Ô][txt-color=#0000f0]Open[/txt-color][Ô] e suas funções [Ô][txt-color=#0000f0]Get[/txt-color] & [txt-color=#0000f0]Input[/txt-color][Ô].
Se são só números que vai gravar no arquivo, não precisa ser binário, pode ser texto.
Mas respondendo sua pergunta:
Open xxx for binary access write as #x = essa instrução vai abrir o arquivo em modo de gravação.
Sempre que for gravar dados em um arquivo que não são binários, o melhor é usar a instrução [Ô]Print[Ô] para gravar e [Ô]Line Input[Ô] para buscar dados:
open [Ô]c:\pasta\arquivo.txt[Ô] for output as #1 [ô]Abre ou cria o arquivo
print #1, [Ô]Algum valor[Ô] [ô]Aqui, pode ser algo como Textbox1.Text, desde que seja dados texto mesmo, isso inclui números e datas
Close #1 [ô]Grava os valores e fecha o arquivo
Para ler:
Open [Ô]C:\pasta\arquivo.txt[Ô] for input as #1 [ô]Abre o arquivo, note que no modo INPUT, o arquivo deve existir, senão vc vai ter um erro
dim dados as string [ô]instanciando uma variável para receber os dados
Line Input #1, dados [ô]buscando o conteúdo DA PRIMEIRA LINHA do arquivo texto e colocando na variável criada acima
Close #1 [ô]Fecha o arquivo
Para ler múltiplas linhas:
Open [Ô]C:\pasta\arquivo.txt[Ô] for input as #1 [ô]Abre o arquivo, note que no modo INPUT, o arquivo deve existir, senão vc vai ter um erro
dim dados as string [ô]instanciando uma variável para receber os dados
dim tudo as string
do while not eof(1) [ô]fazer o loop até o fim do arquivo
Line Input #1, dados [ô]buscando o conteúdo DA LINHA ATUAL do arquivo texto e colocando na variável criada acima
tudo = tudo & dados & vbNewLine [ô]Concatenando na variável [Ô]tudo[Ô] e adicionando um caracter de nova linha
loop
Close #1
textbox1.text = tudo [ô]colocando o valor de [Ô]tudo[Ô] em uma textbox, que deverá ser multilinhas para não mostrar tudo [Ô]amontoado[Ô]
Close #1 [ô]Fecha o arquivo
Mas respondendo sua pergunta:
Open xxx for binary access write as #x = essa instrução vai abrir o arquivo em modo de gravação.
Sempre que for gravar dados em um arquivo que não são binários, o melhor é usar a instrução [Ô]Print[Ô] para gravar e [Ô]Line Input[Ô] para buscar dados:
open [Ô]c:\pasta\arquivo.txt[Ô] for output as #1 [ô]Abre ou cria o arquivo
print #1, [Ô]Algum valor[Ô] [ô]Aqui, pode ser algo como Textbox1.Text, desde que seja dados texto mesmo, isso inclui números e datas
Close #1 [ô]Grava os valores e fecha o arquivo
Para ler:
Open [Ô]C:\pasta\arquivo.txt[Ô] for input as #1 [ô]Abre o arquivo, note que no modo INPUT, o arquivo deve existir, senão vc vai ter um erro
dim dados as string [ô]instanciando uma variável para receber os dados
Line Input #1, dados [ô]buscando o conteúdo DA PRIMEIRA LINHA do arquivo texto e colocando na variável criada acima
Close #1 [ô]Fecha o arquivo
Para ler múltiplas linhas:
Open [Ô]C:\pasta\arquivo.txt[Ô] for input as #1 [ô]Abre o arquivo, note que no modo INPUT, o arquivo deve existir, senão vc vai ter um erro
dim dados as string [ô]instanciando uma variável para receber os dados
dim tudo as string
do while not eof(1) [ô]fazer o loop até o fim do arquivo
Line Input #1, dados [ô]buscando o conteúdo DA LINHA ATUAL do arquivo texto e colocando na variável criada acima
tudo = tudo & dados & vbNewLine [ô]Concatenando na variável [Ô]tudo[Ô] e adicionando um caracter de nova linha
loop
Close #1
textbox1.text = tudo [ô]colocando o valor de [Ô]tudo[Ô] em uma textbox, que deverá ser multilinhas para não mostrar tudo [Ô]amontoado[Ô]
Close #1 [ô]Fecha o arquivo
Valeu pela aula KERPLUNK
Gostei mesmo !
No código que postei acima, é como eu disse, é só para melhorar meu uso em relação ao Open e derivados...
pois o arquivo que estou a [Ô]abrir[Ô] e [Ô]ler[Ô] é um arquivo [Ô]jpg[Ô], e também fiz testes com [Ô]mp3[Ô].
Como eu disse, depois de aberto, faço um For Each para ver tudo que tem...e tenho de retorno vários números fora de sequência (tipo: [txt-color=#0000f0]78 23 102 44 02...[/txt-color])
então, só quero saber se isso são os dados binários do arquivo .
VALEU !
Gostei mesmo !
No código que postei acima, é como eu disse, é só para melhorar meu uso em relação ao Open e derivados...
pois o arquivo que estou a [Ô]abrir[Ô] e [Ô]ler[Ô] é um arquivo [Ô]jpg[Ô], e também fiz testes com [Ô]mp3[Ô].
Como eu disse, depois de aberto, faço um For Each para ver tudo que tem...e tenho de retorno vários números fora de sequência (tipo: [txt-color=#0000f0]78 23 102 44 02...[/txt-color])
então, só quero saber se isso são os dados binários do arquivo .
VALEU !
Talvez sejam dados binários, difÃcil dizer...
Lendo alguns fóruns dá para entender que é...vou fazer o teste pegando um desses números e convertendo para Decimal...
Agora o que não consegui foi deixar o valor binário suspenso em uma variável temporária (Run Time), e depois recuperá-lo sem precisar usar o disco...porque sempre que usamos o Open ... For...#... ele precisa de um diretório quero fazer com uma variável .
Agora o que não consegui foi deixar o valor binário suspenso em uma variável temporária (Run Time), e depois recuperá-lo sem precisar usar o disco...porque sempre que usamos o Open ... For...#... ele precisa de um diretório quero fazer com uma variável .
Em um módulo, crie uma variável pública e ao iniciar leia os dados do arquivo e coloque nessa variável pública, ela vai estar disponÃvel durante toda a execução do seu programa.
Apesar de eu achar que isso já é assunto para outro tópico...
Apesar de eu achar que isso já é assunto para outro tópico...
OK ! vou abrir outro tópico então...ou melhor, reabrir pois lembro que abri um semana passada e encerrei...
Tópico encerrado , respostas não são mais permitidas