USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Tamanho de registro incorreto
cedu
RIO DE JANEIRO
RJ - BRASIL
ENUNCIADA !
Postada em 30/07/2007 15:34 hs         
Prezados, boa tarde!
 
Tenho um programa feito em VB 5.0, utilizando gravação de dados em arquivos binários, quando tento gravar um registro de 84 bytes, o VB avisa que o tamanho do registro está incorreto (Bad record lenght-erro 59). Já tentei abrir informando o tamanho da variável, naturalmente aumentando o tamanho, todavia o erro ainda persiste. Abaixo copio o código:
 
Type registroPesquisa
  dataHora  As Date
  sto As Long
  cliente As String
  endereco As String
  email As String
  ddd As Byte
  telefone As String
  mes As Byte
  ano As Integer
  hInicial As Date
  hFinal As Date
  servico As Byte
  fEtaria As Byte
  apresPessoal As Byte
  escolaridade As Byte
  tipoCliente As Byte
  sexo As Byte
  frequencia As Byte
  espFila As Byte
  preenchExpectativa As Byte
  compBanco As Byte
  compLoterica As Byte
  compTransportadora As Byte
  cortesia As Byte
  conhecServico As Byte
  tempEspFila As Byte
  tempAtendGuiche As Byte
  atendNecessidade As Byte
  identEmpregado As Byte
  orgGeral As Byte
  sinalizacao As Byte
  facAcesso As Byte
  funcionamentos As Byte
  horFuncionamento As Byte
  locAgencia As Byte
  aparInterna As Byte
  aparExterna As Byte
  dispProdServicos As Byte
  atendPreferencial As Byte
  sugestao As String
  justificativa As String
End Type
 
dim regPesquisa as RegistroPesquisa
dim arquivo as string
 
Open arquivo For Random As #1
'Tentei open arquivo for random as #1 len=len(regPesquisa)+10
put #1,,regPesquisa
close #1
 
Desde já, valeu!!!
Carlos Eduardo
   
ghost_jlp
Pontos: 2843 Pontos: 2843 Pontos: 2843 Pontos: 2843
SÃO PAULO
SP - BRASIL
Postada em 30/07/2007 19:04 hs            

Amigo, vi que vc não limitou suas strings. É melhor vc limitar pois com strings sem limitação o tipo pode assumir um valor maior do qual vc está passando.

Funciona assim:

'NESTE EXEMPLO VAI DAR ERRO POIS O MEU TIPO TEM O TAMANHO DE 4 BYTES E ESTOU PASSANDO UMA PALAVRA QUE TEM 5 BYTES. POR CAUSA DO TAMANHO DO TIPO STRING QUE, AO QUE PARECE, POR DEFINIÇÃO É DE 4 BYTES MAS COMO O TAMANHO NÃO FOI DEFINIDO PODE CHEGAR ATÉ 2GB

Type teste
  cliente As String
End Type

regPesquisa.cliente = "ghost"
Open "c:Teste.txt" For Random As #1 Len = Len(regPesquisa)
Put #1, , regPesquisa
Close #1

'AGORA LIMITANDO O VALOR DA STRING

Type teste
  cliente As String * 5
End Type

regPesquisa.cliente = "ghost"
Open "c:Teste.txt" For Random As #1 Len = Len(regPesquisa)
Put #1, , regPesquisa
Close #1

Neste último caso não vai dar erro por causa do tamanho que delimitei igual a "ghost" que tem 5 bytes também. Entendeu?

Qualquer dúvida só postar.

at+

     
cedu
RIO DE JANEIRO
RJ - BRASIL
ENUNCIADA !
Postada em 31/07/2007 08:33 hs         
Valeu ghost, muito obrigado, funcionou perfeitamente!!!
 
Abs
Eduardo
   
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página