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

    [VB] Aprire un file da un offset preciso..

    Il mio problema è questo: ho bisogno di aprire un file da un certo offset in poi... mi spiego meglio: il file è un eseguibile (ciao.exe) che è il risultato della fusione di due files distinti, un exe (buongiorno.exe) e un avi (buongiorno.avi).
    Ho bisogno di realizzare una sorta di media player che mi permetta di visualizzare buonogiorno.avi che "comincia" dall'offset 4000H del file eseguibile ciao.exe. (IMPORTANTE: nessuno dei files si può modificare!)
    E' una cosa realizzabile? In sostanza la domanda è: come si fa ad aprire un file da un determinato offset e non dall'inizio?
    Se qualcuno mi può dare una mano mi farebbe un grosso piacere... mi servirebbero anche delle righe di codice in VB...
    se avete qualsiasi consiglio su come realizzare un media player accetto qualsiasi cosa...

    Grazie...

  2. #2
    Utente di HTML.it L'avatar di Mabi
    Registrato dal
    May 2002
    Messaggi
    1,245
    Non puoi neanche dividere i due file temporaneamente per poi cancellarli al termine dell'esecuzione ?

  3. #3
    Il file avi è un file da 700 Mb... non posso aspettare che me li salvi in una cartella temporanea... deve essere immediata l'operazione...

  4. #4
    Utente bannato
    Registrato dal
    Sep 2003
    Messaggi
    1,012
    Se usi per esempio Get # per accedere al file:
    codice:
    Get #filenum, nbyte, var
    Prende un valore partendo da nbyte!

  5. #5
    ti ringrazio iguana... un'altra cosa...mi spiegheresti a cosa serve e come funziona il comando SEEK? (dico comando perchè non so come definirlo)...

  6. #6
    Utente bannato
    Registrato dal
    Sep 2003
    Messaggi
    1,012
    La funzione Seek(numerofile) restituisce l'offset in byte nel quale avverrà la prossima operazione di input/output su file.

    L'istruzione Seek numerofile, posizione imposta la posizione in byte su cui avverrà la prossima operazione di I/O su file.
    Ha la precedenza però il numero specificato con Put#.

    Esempio:
    codice:
    Seek #1,10
    Put #1,5,"Ciao"
    In questo codice non si scrive "Ciao" alla posizione n.10, ma alla n.5

    Con una operazione di I/O su file, la posizione di scrittura si modifica.
    Ad esempio:
    codice:
    Seek #1,30
    Msgbox "Posizione: " & CStr(Seek(1))
    dim strInput as string * 20
    'inizializza la stringa con 20 spazi
    strInput = space(20)
    
    'prende 20 caratteri alla pos 30
    get #1,seek(1),strinput
    'La posizione è stata incrementata di 20
    Msgbox "Posizione: " & CStr(Seek(1))


  7. #7
    Ti ringrazio nuovamente per questa chiara delucidazione...
    purtroppo non ho idea di come posso utilizzare questi comandi... ho bisogno di far visualizzare al media player un filmato avi... praticamente vorrei fare questo (per semplificare): ho un file mio.avi che vorrei che possa essere visualizzato solo attraverso il mio media player... per fare questo aggiungo del codice binario a mio.avi con un editor esadecimale... così nessun altro player può visualizzare mio.avi... il mio player invece dovrebbe poterlo visualizzare perchè non considera il codice binario che ho aggiunto ma comincia dopo, dove realmente inizia il file.. e' questo che non riesco a fare...
    Ci tengo a sottolineare che mio.avi è su cd quindi solo lettura e non lo posso copiare su disco fisso (altrimenti non sarei qui a spaccarmi la testa!)...

  8. #8
    Utente bannato
    Registrato dal
    Sep 2003
    Messaggi
    1,012
    Vorresti creare un madia player... :master:

    Ma lo vuoi fare puramente da codice o attraverso qualche ocx?

  9. #9
    l'ideale sarebbe farlo da codice.. però modificando il sorgente di un ocx come msdxm.ocx (windows media player)... mi ci sto veramente spaccando la testa...
    Già che ci sei, sapresti dirmi se è almeno possibile integrare ad una applicazione in VB un filmato?
    Cioè, inserire dentro al mio programma un avi in modo che non lo si debba aprire da un percorso?

  10. #10
    Utente bannato
    Registrato dal
    Sep 2003
    Messaggi
    1,012
    Un player interamente in VB sarebbe lentissimo, in questo campo è molto superiore il C++ ed altri linguaggi.

    Di ocx già fatti ne esistono molti, ma non permettono generalmente di aprire un file a cominciare da n byte...

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.