Italian Problema apertura file grandi dimensioni

Discussion in 'Italian Forum' started by nicolino33, Aug 8, 2018.

  1. nicolino33

    nicolino33 Active Member Licensed User

    Ciao ragazzi, posto qui il problema perché probabilmente nel forum inglese Erel non ha molta pazienza e chiude i post senza motivo, il concetto che ho esposto nel forum è molto chiaro: esiste un modo per aprire file di grandi dimensioni allo scopo di modificare alcuni byte per criptarli? il problema sorge quando tento di leggere ad esempio un video, se il file supera i 30 mega o giù di li l'applicazione restituisce un out of memory. Il codice che da problemi con file grandi è il seguente: Result() as Byte = Bit.InputStreamToBytes(File.OpenInput(Dir ,NomeFile)), premetto che con file sotto i 30 mega funziona.
     
  2. Star-Dust

    Star-Dust Expert Licensed User

    @nicolino33, Erel ti ha chiesto di aprire un altro Thread con il titolo che corrispona alla domanda.
    Questo serve per future ricerche. Se qualcuno cercasse OutOfMemory identificherebbe subito il thread dal titolo e non deve entrare in un Thread che sembri che parli di tutt'altro.

    Il thread che parlava della Camera deve contenere informazioni su quell'argomento, risposto alla domanda principale apri un altro thread per altre domande.

    Probabilmente devi avere più pazienza e seguire le regole del forum :D
     
    Filippo likes this.
  3. nicolino33

    nicolino33 Active Member Licensed User

    No non credo proprio, ti consiglio di leggere con attenzione le sue risposte, il tono… il modo… la domanda era molto chiara e semplice, ed esposta nei limiti della correttezza, quindi vediamo di non mettere fango nella bocca della gente. Non c'era alcuna necessità di aprire un altro post, il termine OU OF MEMORY era chiaramente visibile e rintracciabile.
     
  4. sirjo66

    sirjo66 Well-Known Member Licensed User

    E' normale che se tenti di leggere un file grosso e non c'è abbastanza memoria esca un bel OUT OF MEMORY
    Devi quindi cambiare approccio e leggere il file a blocchi invece che leggerlo tutto.
    Ad esempio puoi definire dei blocchi da 10MB (o quello che vuoi tu) ed a ogni blocco leggerlo, criptarlo e scriverlo su di un altro file, poi leggi un altro blocco, lo crittografi e lo scrivi, e prosegui così fino alla fine del file.

    C'è però una cosa: se crittografando un blocco risulta che il blocco crittografato ha ancora le stesse dimensioni del blocco originale il tutto funziona senza problemi, se invece ricavi un blocco di dimensioni diverse allora la cosa è un po' più difficile, perchè quando andrai a scrivere il blocco sul nuovo file dovrai anche fare dei marker per segnalare quanto grande è il blocco, altrimenti poi quando andrai a rileggerlo non riuscirai più a capire quanto grande è il blocco e quindi non riuscirai a decrittografarlo correttamente

    per ulteriori info chiedi pure
     
    LucaMs and nicolino33 like this.
  5. nicolino33

    nicolino33 Active Member Licensed User

    Grazie Sir, sei stato molto chiaro ed esaudiente, però la domanda benchè magari a voi banale a me sorge spontanea perché non ho mai avuto modo di leggere a blocchi, quale comando o set di istruzioni si utilizza? a me la prima cosa che viene in mente è

    Code:
    Dim in As InputStream = File.OpenInput(dir, filename)
    Dim Dati() as byte = in.ReadBytes(buffer, 0, i byte che voglio leggere)
    però se cosi fosse ho già sperimentato, ed il problema dell'out of memory si presenta anche quando lancio la prima riga di codice dell'openinput.
     
  6. LucaMs

    LucaMs Expert Licensed User

    Devi usare RandomAccessFile.

    (poi ci insegni come inserire virus in un file video :p)
     
    sirjo66 likes this.
  7. nicolino33

    nicolino33 Active Member Licensed User

    Dai Luca non temere, appena ho finito il lavoro ti do il link sul play store…. e poi capirete che le 4 domande messe in croce che posto ogni tanto sono proprio poche rispetto all'opera che ho fatto :) Poi a a me piace leggere, ma da tanto che ho letto e che sto studiando ho perso un diottria quindi un mano è ben gradita ;D
     
    LucaMs likes this.
  8. LucaMs

    LucaMs Expert Licensed User

    Oh, comunque Erel non aveva torto, in quanto tu hai prima scritto di ricevere quel messaggio nel creare un video usando Camera, poi hai aggiunto:

    "The problem of out of memory is in all method to read file, not only camera, for example if I read file over 30MB with file.openinput I'v the same error"

    e

    "Another question: is..."

    Quindi ti ha risposto che per nuove domande dovresti aprire un nuovo thread (anche se il messaggio d'errore è quello, puoi riceverlo per tanti motivi diveri e l'argomento principale era quello del tuo primo post, la ripresa di un video).




    Non esattamente; il titolo era "OUT OF MEORY" :p
     
  9. nicolino33

    nicolino33 Active Member Licensed User

    Sul fatto del nuovo th per il discorso huawei va bene, ma per il resto non sono molto d'accordo, più che altro per il modo che ha di porsi molto irritante, credo che questo sia un forum di gente colta ed educata, e tutti sappiamo bene che la programmazione è un brutto mestiere, e prima di intraprendere certe azioni ed assumere certi atteggiamenti (tra l'altro ripetuti anche in altri post) bisognerebbe pensarci due volte.
     
  10. LucaMs

    LucaMs Expert Licensed User

    Beh a volte può sembrare brusco (e tutti a volte possiamo essere nervosi), anche se non mi sembra questo il caso.

    Comunque, una cosa è certissima, non certa:
    :D
     
    Filippo likes this.
  11. nicolino33

    nicolino33 Active Member Licensed User

    decisamente brusco e a tratti anche prepotente direi, ma sorvoliamo, tra l'altro sarei anche un suo cliente :) Ne prenderà atto spero...
     
Loading...
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice