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+