SEQUENCIAL DO TEMPO DO ZAGAIA

MKV 19/02/2016 12:41:12
#457906
Ola!,
uma novo cliente tem um programa do tempo do QBasic, ele usa como banco de dados vamos dizer assim, arquivos texto sequenciais, o cara que programou isso ja passou dessa pra melhor. entáo náo tenho como sultar tamanhos de campos nada, só sei que é sequencias e quando se trata de valores ele pega e transforma eu binario.

Alguem ai pode me dar uma luz de como ler trasforna converter esse trem pra alguma coisa que de pra ler?


Obrigado!
MOUSER 19/02/2016 13:51:41
#457909
Existe uma formula para converter binarios em caracteres, só temos que lembrar como usar essa formula e como jogar essa formula do papel para o soft.
MOUSER 19/02/2016 13:53:12
#457910
Achei uma tabela que talvez ajude, só tem que colocar essa tabela no soft para fazer a conversão.
MKV 19/02/2016 14:10:11
#457911
até ai blz, o problema é o delimitador dos campos, saber o tamnho
ex. onde inicia cada nova linha.

vou tentar montar alguma coisa com essa tabela usando array.
SINCLAIR 19/02/2016 14:26:06
#457913
Colega MKV,

Já tive a oportunidade de lá nas antigas trabalhar com GWBasic (depois veio o QBasic como parte do MS-DOS 6.22).

Ao meu ver, o único jeito é você abrir o arquivo como RANDOM (sequencias randômicos). O que você pegar na variável de leitura lhe ajudará a entender o conteúdo, o qual não tem delimitadores fixos, você precisa saber o formato do registro.

Veja exemplos em:

http://www.o-bizz.de/qbtuts/gw-train/
http://www.antonis.de/qbebooks/gwbasman/open.html
http://www.divonasperi.it/divona/tam/tecnologia/dow-all/GW%20Basic%20%28inglese%29.pdf
http://www.antonis.de/qbebooks/gwbasman/chapter%205.html

Tudo de bom.



MKV 19/02/2016 15:10:25
#457918
ola! devo ser muito burro mesmo, abro o arquivo blz alguns achei a senquencia blz con segui até organizar as coisas, mais esse aqui não vai mesmo

segue parte do conteudo, não consego identificar se hex hexdecimal ou liguagem do alem!
-------------------------------------------------------------
02-01-04d_@Ãõ(\ÂC@ARGAMASSA EXTERNA CIMENFLEX (20KG)*CIMENTOLIT** {žAXÃE02-01-04û@@®Gáz®@ACIDO MURIATICO **1 LITRO** …ëñ?'ÃE02-01-04  AÍÌÌÌÌÌ@PARAFUSO FRANCES 3/8 X 4 GALV …ë?'ÃE02-01-04Ô A333333ã?ARRUELA LISA GALV 3/8 Âu='ÃE02-01-04, AÍÌÌÌÌÌì?PORCA SEXT 3/8**5/16 ìQ¸='ÃE02-01-04Ú¨ €?®Gáz®×?TIJOLO A VISTA A MAO INTEIRO **ITAIPU** ¤p½>hÃE02-01-04Ú¨ zD w@TIJOLO A VISTA A MAO INTEIRO **ITAIPU** ¤p½>pÃE02-01-04èÀ?…ëQ¸ÞA@AREIA GROSSA/MEDIA (METRO) ×£¾AxÃE02-01-04èH€?®GázÔ7@AREIA FINA (METRO) ×£¾AxÃE02-01-04èpA O@CAL (VOTORAN/MINERCAL) ÍÌ„@xÃE02-01-04èà@\Âõ(\a@CIMENTO VOTORAN CP II (50KG) R¸žAxÃE02-01-04èAÀ@ìQ¸…ËR@FERRO 5/16 (8.0mm) CA50 12MTS ázHAxÃE02-01-04èC@Ház®G@FERRO 3/16 (4.2mm) CA60 12MTS q=z@xÃE02-01-04è6€?¤p=
×£@ARAME RECOZIDO N.18 (KILO) ¸@xÃE02-01-04èTaD c@TIJOLO BAHIANO (UNID) {.>xÃE02-01-04èJ?\Âõ(\,@PEDRA 1/2*( METRO ) ÍÌâAxÃE02-01-04èÑ@A^@PISO LEF 4490-A ANTIDERRAPANTE (METRO) AxÃE02-01-04è_@@¤p=
×£M@ARGAMASSA EXTERNA CIMENFLEX (20KG)*CIMENTOLIT** {žAxÃE02-01-04±…€?ìQ¸…k[Ô]@ARGAMASSA QUARTZOLIT **20KG** )\A€ÃE02-01-04±€?Ãõ(\Â@PO XADREZ VERMELHO 500GR {ÃŽ@€ÃE02-01-04±nÀ@U@GUARNICAO CEDRO TRABALHADA (0.07CM) 'A€ÃE02-01-04…€@ìQ¸…kB@ARGAMASSA QUARTZOLIT **20KG** )\AˆÃE02-01-04^'A=
×£p=7@REJUNTE JUNTALIDER CINZA ESCURO (KG) ázÔ?ˆÃE02-01-04èrBfffff}@LAJE TRELICA P/FORRO H-8 (SEM ADICIONAIS) ffNAÃE02-01-04è
@ W@CIMENTO CAMPEAO CPII (50KG) 33—AÃE02-01-04èAÀ@…ëQ¸Ã¥Q@FERRO 5/16 (8.0mm) CA50 12MTS Há>AÃE02-01-04è@ @ÍÌÌÌÌüS@FERRO 3/8 (10.0mm) CA50 12MTS
×AÃE02-01-04ÿ°Aö(\Âl@CAIBRO 5.00MT =
#A˜ÃE02-01-04ê€@¤p=
׃'@VIGA 6X16 5.50 ¸B˜ÃE02-01-04[C@W@RIPAS 0,05CM. (METRO) R¸?˜ÃE02-01-04T–CK@TIJOLO BAHIANO (UNID) ìQ8>˜ÃE02-01-04^€?áz®Gá@PREGO 15X15 ( 1 KG ) =
‡@˜ÃE02-01-04b €?Ház®G@PREGO 20X48 (KILO) q=j@˜ÃE02-01-04¬@Aö(\ÂõK@METROS DE TUBO ESGOTO 75MM (3[ô]) *UNOCAM* ¸•@˜ÃE02-01-04Â@@Âõ(\ßQ@AREIA GROSSA/MEDIA (METRO) ×£¾A ÃE02-01-04ËœTpAš™™™™Y9@SARRAFO 0.07CM (METRO) ìQØ?¨ÃE02-01-04ËœUpAš™™™™¹@@SARRAFO 0.10CM (METRO) R¸@¨ÃE02-01-04í€?ìQ¸…kA@BATENTE 0.80 ANGELIN )B°ÃE02-01-04íA@ìQ¸…k8@FECH BRASIL INTERNA 1916 IX )\CA°ÃE02-01-04íQ@
×£p=
@DOBRADICA 3 1/2 CROMADA (CARTELA C/3) ìQx@°ÃE02-01-04fí @š™™™™™©?VIGA 6X16 7.00
×#<¸ÃE02-01-04fê€?{®Gáz„?VIGA 6X16 5.50
×#<¸ÃE02-01-04fë€?{®Gáz„?VIGA 6X16 6.00
×#<¸ÃE02-01-04Ñ…€?ìQ¸…k[Ô]@ARGAMASSA QUARTZOLIT **20KG** )\AÀÃE02-01-04Ñ
€?{®Gáú4@CIMENTO CAMPEAO CPII (50KG)
קAÀÃE02-01-04Ñ?333333)@AREIA GROSSA/MEDIA (METRO) Å¡â„¢éAÀÃE02-01-04Ñ_ Aš™™™™™0@REJUNTE JUNTALIDER CINZA PLATINA (KG) ázÔ?ÀÃE02-01-04Ñ…@ìQ¸…k2@ARGAMASSA QUARTZOLIT **20KG** )\AÈÃE02-01-04Ñ:€?333333@ARAME GALVANIZADO N.16 (1 KG) Å¡â„¢é@ÐÃE02-01-04‘
CÀ@Ház®Ç8@FERRO 3/16 (4.2mm) CA60 12MTS ö(„@ØÃE02-01-04‘
AÀ@\Âõ(ÃœS@FERRO 5/16 (8.0mm) CA50 12MTS
×SAØÃE02-01-04N ®€?…ëQ¸@TORNEIRA JARDIM ESFERA 3/4 Ãõ¸@èÃE02-01-04N  €?®Gázî?VEDA ROSCA 10MTS *TECNOFIT* ×£p?èÃE02-01-04¬ €?'h@CAIXA D[ô]AGUA 1000LTS (GP FIBRAS) CCàÃE02-01-04¬ ã€?\Âõ(ÃœL@LAVATORIO C/COLUNA TRADICIONAL BRANCO HáfBàÃE02-01-04¬ / @333333÷?CONDUITE CORRUGADO 1/2 AMARELO (METRO) áz”>àÃE02-01-04¬ * @ÍÌÌÌÌÌ
@TE MARRON 3/4 TIGRE …+?àÃE02-01-04¬ >@@ÐT@REGISTRO GAVETA DECA 3/4 *C-40* ÞAàÃE02-01-04¬ Ô€?®Gáz^U@VALVULA HIDRA MAX CROMADA (DECA) ¤ðªBàÃE02-01-04¬ „À@R¸…ëQC@METROS DE TUBO MARRON 50MM (1 1/2)**TIGRE** {ÃŽ@àÃE02-01-04¬ °€?ÍÌÌÌÌL+@ADAPTADOR C/FLANGES 1.1/2 (TIGRE) ffZAàÃE02-01-04¬ 2€?R¸…ëQ@TE MARRON REDUCAO 1 1/2 X 3/4 (TIGRE) \Š@àÃE02-01-04¬ E€?
×£p=
SINCLAIR 19/02/2016 15:25:02
#457919
Colega,

Eu não lembro bem a sintaxe, isto faz 23 anos que utilizei, nem tinha começado a faculdade ainda, mas dá para reproduzir no VB6.

Era parecido com o Enum. Algo como:

Public Enum MKV

nome
cpf
endereco

End Enum


A diferença é em nome, cpf, endereco era possível definir o tipo e o tamanho (exemplo: string * 20 -> para string de 20 espaços)

Na leitura do registro no arquivo sequencial era assim:

line input #numero_do_buffer, MKV.

Assim, em MKV.nome viria o nome, em MKV.cpf viria o CPF e assim por diante.

Só não lembro bem as sintaxes, mas o caminho é por ai.

Quanto aos caracteres confusos, é porque é arquivo que tem que abrir com o RANDOM mesmo, dai virá certinho dentro do Enum (lembrando que não acredito ser bem o Enum, mas é algo bem parecido, só não lembro agora... isto é na época que eu me alimentava todo dia com toddynho e achava que estava super saudável).

Tudo de bom.



MOUSER 19/02/2016 15:43:05
#457921
Citação:

Colega MKV,

Já tive a oportunidade de lá nas antigas trabalhar com GWBasic (depois veio o QBasic como parte do MS-DOS 6.22).

Ao meu ver, o único jeito é você abrir o arquivo como RANDOM (sequencias randômicos). O que você pegar na variável de leitura lhe ajudará a entender o conteúdo, o qual não tem delimitadores fixos, você precisa saber o formato do registro.

Veja exemplos em:

http://www.o-bizz.de/qbtuts/gw-train/
http://www.antonis.de/qbebooks/gwbasman/open.html
http://www.divonasperi.it/divona/tam/tecnologia/dow-all/GW%20Basic%20%28inglese%29.pdf
http://www.antonis.de/qbebooks/gwbasman/chapter%205.html

Tudo de bom.


Citação:


Colega,

Eu não lembro bem a sintaxe, isto faz 23 anos que utilizei, nem tinha começado a faculdade ainda, mas dá para reproduzir no VB6...



Nessas horas que percebo que sou muito novo em todos os sentidos, tanto de idade como também na área de programação! haha!
Mas indo direto ao assunto, Zeuzebio, no VB.NET ainda é usado uma sintaxe igual. Só que usava o ENUN para avaliar se era Inclusão ou alteração, no caso de consulta de determinadas informações incluidas na tabela, era chamada a alteração, mas a ideia é essa mesma.
FFCOUTO 19/02/2016 15:59:29
#457926
O que o Zeuzebio está se referindo é a Structure (Type). é apenas um chute, mas pela distribuição dos registros parecem ser 4 campos, Data, Valor, Nome (descrição) e Código, creio que nesta ordem.

Public Type MKV
Data As Date
Valor As Double
Nome As String * 50
Codigo AS Double
End Type


O restante da leitura é feita conforme o Zeuzebio já postou.

SINCLAIR 19/02/2016 16:30:17
#457932
Colega FFCOUTO,


Citação:

O que o Zeuzebio está se referindo é a Structure (Type). é apenas um chute, mas pela distribuição dos registros parecem ser 4 campos, Data, Valor, Nome (descrição) e Código, creio que nesta ordem.



Faço minhas as palavras do Chaves (que, aliás, eu assistia naquele tempo):

isso, isso, isso!

MKV 20/02/2016 03:04:22
#457957
Bom seguindo as orientaçôes de vc's

ficou assim

 
Private Sub Command1_Click()

Dim dad As MKV

[ô];Open [Ô]MOV04.ARQ[Ô] For Input As #1

Open [Ô]MOV04.ARQ[Ô] For Random Access Read As #1
Do While Not (EOF(1))

Input #1, MKV
MsgBox dad.Data & [Ô] - [Ô] & dad.Valor & [Ô] - [Ô] & dad.Nome & [Ô] - [Ô] & dad.Codigo

Loop
MsgBox v

[ô] Close the file.
Close 1

End Sub


e um modulo

  Public Type MKV
Data As Date
Valor As Double
Nome As String * 50
Codigo As Double
End Type


tenho o seguinte retorno [Ô]bad file mode[Ô]
Página 1 de 2 [12 registro(s)]
Faça seu login para responder