ACESSO DIRETO ARQUIVO COMO FAZER EM VB

USUARIO.EXCLUIDOS 22/05/2004 22:53:13
#26183
Saudações,

Aos poucos entendo porque o VB é discriminado entre os professores da faculdade.A maioria dos trabalhos que eles passam tenho dificuldade em fazer no VB, não devido a lógica mas sim em recursos da linguagem.

Bem o problema agora á Acesso Direto a Arquivo Binários.
Em Pascal de 1970 seria assim
Vc criaria um tipo Record equivalente ao TYPE do VB

Type Registro= record
Chamada : integer;
Nome: string[20]
end;

Até aqui tudo bem o VB faz.So que o Pascal permite declarar um arquivo do tipo do record.

Arquivo= file of registro; (Isso não consigo fazer no VB.)
Depois ele declara 2 variaveis::

var Aluno: Registro;
Turma:Arquivo;

Então para gravar no arquivo seria
Ler cada campo do record
Aluno.Chamada=1
Aluno.Nome=teste
write(Turma,ALUNO) Aqui que é a jogada ele grava o record , automaticamente coloca o campo chamada e nome.
E para ler a mesma coisa
read(Turma,Aluno)
O retorno de Aluno.chamada e Aluno.Nome é automatica.
Mas preciso mesmo seria do
Seek(Turma,1) onde 1 é o numero da linha, então ele posiciona o ponteiro na linha um
depois faz um write(turma,aluno) e recupera o aluno que esta na linha 1.

Bem isso é básico de arquivo PASCAL já implementava isso na decada de 70.Preciso desse suporte para fazer um trabalho de hashing por tabela.Gostaria de fazer em VB, creio que deve haver um modo de fazer, mas depois de umas horas pesquisando não achei nada.Somente no site do Macoratti ele mostra mais usando DAO e não via código.Já experimentei:

Type Registro
Nome As String
Idade As String
End Type
Open Path For Binary As Registro

Mas claro que ele não aceita pois espera depois do AS um valor inteiro.Quando preciso fazer esses trabalhos fico muito decepcionado com o VB.
Será que alguem sabe como fazer isso?










USUARIO.EXCLUIDOS 23/05/2004 12:25:17
#26205
Resposta escolhida
é isso ai Renato... só quem nunca conheceu outra linguagem idolatra o VB.

Veja esse tópico http://www.vbmania.com.br/vbmforum.php?varMethod=Abrir&varID=25357&varSubPagina=2&varFiltro=Nulo creio que ele deva sanar suas dúvidas.
USUARIO.EXCLUIDOS 23/05/2004 17:03:46
#26263
Esses são os pontos que o pessoal mete o pau no VB, ele é uma péssima linguagem para ensino acadêmico por não suportar variáveis do tipo ponteiro, indireção, estruturas de dados (com uso de ponteiros), tais como: pilhas, filas, deques, lista encadeadas, arvores, grafos, etc... Você não encontra material sobre isso na internet simplesmente porque é quase impossivel implementar isso em VB e geralmente programador VB fogem de ponteiros e APIs assim como o diabo foge da cruz.

Na boa, se isso é trabalho de Faculdade faça em C ou Pascal, isso é um aprendizado e tanto e com certeza conceitualmente vc ira utilizar isso em pelo resto da sua vida... e em outras linguagens que vc venha a aprender.

Não te aconselho a fazer isso em VB mais se quiser pesquisar mais veja sobre as APIS: CopyMemory, FillMemory, ZeroMemory, GlobalAlloc, GlobalFree, GlobalLock, GlobalUnlock.
Além das funções em VB que equivalem ao operador de endereço & (e comercial) em C: StrPtr.VarPtr, ObjPtr.
Tópico encerrado , respostas não são mais permitidas