Dans mon projet, je désire transférer un ensemble de fichier différents dans un seul fichier pour rendre celui-ci exploitable sur n'importe quel machine sans devoir aller chercher un wav là-bas, une vidéo ici, une musique là!
Lors de la lecture de ce fichier, il doit replacer ceux-ci dans un répertoire temporaire pendant l'exécution du projet:
exemple :
vidéo dans d:\simulateur\vidéo\coucou.wmv
musique dans g:\musique\elco\track12.wav
effet sonore dans c:\effets\explode.wav
image dans [CD-ROM]:\armes\cible.jpg
....
devient:
mon_projet.cts
lors de l'ouverture de celui-ci, le programme crèe un repertoire temporaire qui va contenir:
coucou.wmv
track12.wav
explode.wav
cible.jpg
....
J'essaie d'utiliser les TFileStream, ca va bien pour écrire les fichiers les uns à la suite des autres avec
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ficdest.SaveToStream(ficorg)
Mais comment les relire, dès que j'utilise un LoadFromStream, il charge tout d'un seul coup, ce qui est son fonctionnement par défaut!
Existe-t-il une fonction de type :
Les étapes taille et nom ne me pose pas de problème, dois-je utiliser un TMemoryStream ou un tampon?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 FileToFileStream(OrigFile:string; DestStream:TFileStream); begin // écrire le nom du fichier dans le stream // écrire la taille du fichier dans le stream // écrire le fichier dans le stream end; FileStreamToFile(OrigStream); begin // récupérer le nom du fichier dans le stream // récupérer la taille du fichier dans le stream // extraire le fichier pour le copier sur le disque end;
Merci pour les pistes car comment récupère-t-on la taille du fichier charger dans un TMemoryStream?
Comment dire à un TMemoryStream qu'il ne doit charger qu'une partie d'un autre Stream et pas l'entièreté?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Seek(0,soFromEnd);
Je reviens voir demain car le boulot est fini! Merci
Partager