Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2008
    Messaggi
    26

    [VB] Scrivere in un file un array di integer, possibile o no?

    Una domanda, o meglio un dubbio. Sto collaborando per la scrittura di un programma e oggi mi hanno mandato una mail in cui mi si dice che dovrei fare questa implementazione che consiste nell'accodare a un file bmp una certa stringa di controllo interno nostro. Chi dovrà poi leggero questo file dovrà poter riconoscere la parte orginale del file dalla stringa di controllo.


    Vi riporto il testo della mail:
    --->
    Alla fine del file binario (in questo caso un immagine bmp) devi accodare la stringa di controllo ,la dimensione originale del file, la dimensione della stringa di controllo (in modo da poter ridividere il file originale e la stringa di controllo in un secondo tempo).

    Il file finale dovrebbe rispecchiare questa struttura:

    DatiFileBinario StringaAggiuntiva {dimensioneOriginale,DimensioneStringaAggiuntiva}
    <----


    Siccome per dei motivi particolari non posso chiedere chiarimenti su questa email, il mio dubbio è questo:
    " {dimensioneOriginale,DimensioneStringaAggiuntiva}" secondo voi è inteso come un array? o secondo voi nel file devo scrivere proprio le parentesi grafe e la virgola in mezzo tra i due valori?
    è possibile in un comando di scrittura scrivere direttamente un array di integer?
    So che questa domanda dovrei farla a chi ha scritto la mail, ma proprio non posso.

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320

    Moderazione

    VB viene trattato nel forum apposito: Visual Basic e .NET Framework.

    Sposto la discussione.

    Oltretutto, però, è necessario specificare obbligatoriamente la versione di VB usata.

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2008
    Messaggi
    26
    grazie scusate, ero convinto di averlo postato qui. Comunque è VB.net.

    Come posso fare per aggiungere alla fine di un file binario(DatiFileBinario) gli ulteriori dati di controllo?


    DatiFileBinario StringaAggiuntiva {dimensioneOriginale,DimensioneStringaAggiuntiva}

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2008
    Messaggi
    26
    come si puo scrivere un array di integer in un file binario??
    con BinaryWriter.write non riesco

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2008
    Messaggi
    26
    con vb6 è possibile semplicemente utilizzando il metodo put...ma con vb.net???

  6. #6
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,539
    in teoria, se non ho capito male dovrebbe essere una sorta di protocollo di codifica, pero' il punto è che se fosse cosi' dovrebbe andare in testa ai dati dell'immagine non dopo, questo per semplificare l'estrazione.

    supponiamo che tu abbia l'immagine che per semplicità considereremo 1 pixel x 1 pixel RGB a 24 bit, quindi abbiamo un pixel nero (o bianco adesso non ricordo):

    r (red) = 255,g (green) = 255, b (blu) = 255;
    tradotto in binario equivale a 111111111111111111111111
    a questo punto dovresti accodare la lunghezza della bitmap che in questo caso è 3 otteti, quindi :
    3 = 00000011
    poi devi accodare la dimensione della stringa, che sempre in questo caso è 1 otteti:
    1= 00000001
    successivamente tu devi accodare c (minuscolo e in ascii ad esempio) a 8 bit:
    c = 99 = 01100011

    a questo punto avrai il tuo binario che sarà finalmente :

    111111111111111111111111 (bitmap) +
    00000011 (dimensione originale della bitmap) +
    00000001 (dimensione stringa aggiuntiva) +
    01100011 (stringa) =

    111111111111111111111111000000110000000101100011

    ora, a parte il fatto che io ho solo presuposto che fosse una bitmap 1 x 1 a 24 bit, e che, sempre per supposizione, la dimensione sia espressa in otteti e che la codifica sia ascii (tutto questo te lo dovrebbero dire loro)
    ora ovviamente dovrai estrarla, e qui nasce il problema :
    come fai a sapere in quale punto si trova la dimensione di cio' che hai accodato se non sai a priori la dimensione della bitmap che sta in testa?

    ecco perchè ti dicevo che di norma dovrebbe essere messa in testa l' informazione per determinare il protocollo, a meno che non sia standar la bitmap, cioè ad esempio sai che sarà per forza di cose sempre 1x1 a 24 bit, quindi implicitamente i primi 24 bit sono sempre dedicati alla bitmap.

    comunque l'estrazione della stringa dovresti poterla fare semplicemente leggendo (dal 24° bit) i successivi 8 bit per determinare la lunghezza della bitmap (che in caso sia sempre fissa, cioè 1x1 24 bit, questa info sarebbe inutile perchè sarà sempre di 3 otteti (24 bit)), i successivi 8 bit determinano la lunghezza della stringa (1 carattere rappresentabile con 8 bit quindi 1 otteto, ma se si tratta di alfabeto basterebbe anche una codifica a 7 bit, ma per il momento lasciamo stare...) in otteti , i rimanti bit indicano la stringa.

    Penso che ti abbiano dato veramente troppe poche info per sviluppare una cosa del genere... magari lo hanno fatto per vedere se eri in grado di dirgli : signori mi pare che ci sia qualcosa che non mi quadra...

    se io avessi ricevuto quell'email avrei pensato questo, poi non so

  7. #7
    Ma senza fare troppi casini, se quella è la richiesta basta usare semplicemente uno StreamWriter di qualche tipo per accodare i dati. D'altra parte non ti so dare indicazioni più precise se tu non ci dai risposta a queste due tue domande:
    secondo voi è inteso come un array? o secondo voi nel file devo scrivere proprio le parentesi grafe e la virgola in mezzo tra i due valori?
    .
    Amaro C++, il gusto pieno dell'undefined behavior.

  8. #8
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,539
    Originariamente inviato da MItaly
    Ma senza fare troppi casini, se quella è la richiesta basta usare semplicemente uno StreamWriter di qualche tipo per accodare i dati. D'altra parte non ti so dare indicazioni più precise se tu non ci dai risposta a queste due tue domande:
    .
    ciao MItaly, credo che il punto sia che se deve accodare dati a un file binario deve comunque scriverli in binario secondo una logica... il come accodarli viene dopo, in base a cio' che deve accodare, ma sempre dei bit deve accodare no?!? dalla mail io ho capito cosi.

  9. #9
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,539
    Originariamente inviato da MItaly
    Ma senza fare troppi casini, se quella è la richiesta basta usare semplicemente uno StreamWriter di qualche tipo per accodare i dati. D'altra parte non ti so dare indicazioni più precise se tu non ci dai risposta a queste due tue domande:
    .
    beh in effetti potrebbe essere anche che nel file scriva veramente testo, ma io personalmente non mi aspetterei mai che una ditta seria faccia mezzo testo e mezzo binario.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.