Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [DELPHI] Leggere N byte

    Ciao a tutti,
    ho un collega da salvare che lavora in Delphi, deve leggere un file binario con record a lunghezza variabile.
    Per esempio deve prima leggere 20 byte, poi 1000, poi 4...
    Il programma lo ha finito e funziona, ma è decisamente lento.
    Secondo me è lento perchè scarica quello che legge in un array di byte di 100.000 elementi di tipo char (sovrascrivendo nell'array il record letto in precedenza) e mi viene il dubbio che ogni volta che legge un record i 100.000 elementi vengono automaticamente puliti (perforza deve essere così).
    Non conosco Delphi, ma in C++ ho la possibilità di creare al momento del bisogno un buffer di dimensioni variabile a seconda del numero di byte che devo leggere. Lui dice che in Delphi non si può... strano, si può anche in VB6!

    Quello che a logica dovrebbe fare è

    1) Capire quanti byte deve leggere (e questo lo fa)
    2) Creare un buffer grande come il numero di byte da leggere
    3) Utilizza i dati letti come più gli piace...
    4) Elimina il buffer

    I punti da risolvere sono il 2 ed il 4?
    Si può?
    Qual'e' la sintassi?

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    475
    Cerca su google "dynamic array": è essenzialmente la stessa cosa che fai in C++, solo che cambia la sintassi...

    Il puntatore in delphi mi pare sia il carattere ^, mentre al posto di malloc mi pare ci fosse "AllocMem" ma non ci posso giurare minimamente.
    "Let him who has understanding reckon the number of the beast, for it is a human number.
    Its number is rw-rw-rw-."

  3. #3
    Grazie mille!
    Ha già fatto le modifiche prendendo spunto da quanto dici, è decisamente piu' veloce!

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 © 2024 vBulletin Solutions, Inc. All rights reserved.