View Full Version : [VB] Convertire da BIN ad un altro formato
leadergl
25-01-2006, 10:42
Raga qual'è la strada migliore per convertire un file .BIN in un altro file con una data struttura?
Come bisogna operare in questi casi per avere una conversione rapidissima?
P.S. i file con cui devo operare possono essere anche di 20 o 30MB
scusa, ".bin" non è il nome di un formato, è un'estensione... a che formato ti riferisci di preciso?
leadergl
25-01-2006, 12:50
beh di preciso devo passare da un file binario ad un file con struttura S-Record Motorola.
cmq ho riscritto il mio algoritmo, quello di prima ci metteva troppo, ora ci mette 12 secondi per un file .bin di 13MB.
Credo sia abbastanza ok come tempo. Ho solo un paio di piccoli intoppi da risolvere:
1) al nuovo file che creo viene inserita un ultima riga di tutti zeri che in origine non esiste
2) nel calcolare degli offset ho un problema: il mio offset iniziale è ad esempio 10092000 che è ovviamente in HEX ora man mano che scrivo nel mio file lo devo incrementare di 64 (decimale) = 40 hex. come faccio a farlo nel modo più indolore possibile?
continui a non essere molto chiaro: ti sei spiegato sul formato che vuoi ottenere ma non su quello che hai inizialmente: fino a prova contraria, su qualsiasi computer qualsiasi file è binario...
leadergl
25-01-2006, 13:10
Questo è un esempio del file origine S-Record (ovviamente una piccola parte del file):
S00600004844521B
S3451009200010ABA5850000...0A00008B
S345100920401123FFFF1000...FFFFFF0D
Questa è la sua versione binaria:
«¥…
che è uguale a:
10 AB A5 85 00 00 00 B1 00 13 02 06 FF FF 08 B7
FF FF FF FF 00 FF FF FF 08 03 00 01 10 09 20 00
10 09 20 C3 10 09 20 C4 10 E5 FF FF FF FF FF FF
FF FF FF FF 10 04 00 00 10 09 1F FF 11 0A 00 00
11 23 FF FF 10 00 F0 00 10 00 FF FF 10 01 00 00
10 01 FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
ora mi hai mostrato un esempio di un tuo "file binario", ma ancora non riesco a capirne il formato... che significato hanno tutti quei bytes, come devono essere interpretati? e poi qualcosa non mi torna: nella versione in ASCII ci sono 5 o 6 caratteri, nella rappresentazione esadecimale sono molti di più...
leadergl
26-01-2006, 10:44
raga ma cosa c'è di diabolicamente errato in questo codice? (lo allego)
è quello che mi serve per convertire il file bin nella sua struttura originale
leadergl
26-01-2006, 11:04
Ah, chiariamo un po la struttura del file originario ed in cosa consiste il bin:
File Originario (struttura record S3):
S3 - Len (1byte) - Offset (4byte) - Dati [(Len-1)byte] - Checksum (1byte)
S3 - XX - YYYYYYYY - ............ - ZZ
S3 - 45 - 10001000 - .............. - FF
Struttura file originario:
1) UN SONO Record S0
2) Molti Record S3
3) Un Record S7 finale
S00600004844521B
S3451009200010ABA585000000B100130206FFFF08B7FFFFFFFF00FFFFFF0803000110092000100920C3100920C410E5FFFFFFFFFFFFFFFFFFFF1004000010091FFF110A00008B
...
S34510D069C0106E47E1106E47E5106E47E9106E47ED106E47F1106E47F5106E47F9106E47FD6D7034736D7034766D70346173616D72736177627332363364726D730000000070
S70500000000FA
Ora il file .BIN si crea partendo dal file originario e:
1) eliminando il record S0
2) eliminando DAI record S3 i seguenti dati:
a) S3
b) Len
c) Offset
d) Checksum
(rimangono quindi i soli dati)
3) eliminado l'ultimo (ed unico) record S7
La LEN standard per i File S-Record Motorola è di 45byte, quindi quando ricostruirò il file partendo dal BIN voglio che sia di 45 ed in questi è compreso anche il checksum.
Il checksum è un checksum ad 8bit (1byte, 2 caratteri) ed è calcolato in complemento ad FF.
tutto qua...credo che adesso sia tutto più comprensibile....
leadergl
27-01-2006, 08:36
...up...
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.