Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1911 connectés 

 


Dernière réponse
Sujet : [delphi] Mettre a jour un fichier
drlobo Ben je viens de tester et comme l'a dit JWhy, il suffit de modifier la propriété size du TFileStream pour couper les bouts qui dépassent :p

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
drlobo Ben je viens de tester et comme l'a dit JWhy, il suffit de modifier la propriété size du TFileStream pour couper les bouts qui dépassent :p
drlobo merci pour toutes ces reponses!
je vais de ce pas tester tous ca.
 
le tag a la fin du fichier est le tag id3v1 d'une taille fixe de 128 octets, mais ce que je veux mettre a jour c'est le tag lyrics3 qui lui est de taille variable et se trouve juste avant le tag id3v1
[SDF]Poire

Bruce a écrit a écrit :

Oui, ils sont de taille fixe à la fin, mais faut quand même remplir les valeur de blanc pour pas avoir de bug... :)  




Donc C ce que j'avais dit il faut pas tronquer mais foutre des 0

Bruce Oui, ils sont de taille fixe à la fin, mais faut quand même remplir les valeur de blanc pour pas avoir de bug... :)
[SDF]Poire

Bruce a écrit a écrit :

 
 
Oui et non :)
Les IDTag v1 sont à la fin, les IDTagv2 sont au début...  




Mais ils sont pas de taille fixe à la fin ? (me suis occupé que de des IDTagV2 et les tags de fin de base... (C pas si ils ont un nom...))

Bruce

[SDF]Poire a écrit a écrit :

 
G un ennorme doute là.... les tags ID3 ne sont pas au début du fichier ? à la fin d'un MP3 je crois que C juste le tag standard avec une taille fixe.... (C loin tout ça alors.....)  




 
Oui et non :)
Les IDTag v1 sont à la fin, les IDTagv2 sont au début...

[SDF]Poire ou ça....
CopyFrom
Copie directement le nombre spécifié d'octets d'un flux vers un autre flux.
 
function CopyFrom(Source: TStream; Count: Longint): Longint;
 
Description
 
La méthode CopyFrom permet de copier dans ce flux des données d'un autre flux. L'utilisation de CopyFrom évite à l'utilisateur d'employer, pour effectuer la copie, un tampon qu'il faut créer, dans lequel il faut lire les données puis les écrire et qu'il faut enfin libérer.
 
CopyFrom copie Count octets du flux spécifié par Source dans ce flux. La méthode déplace ensuite la position en cours de Count octets et renvoie le nombre d'octets copiés.  
 
Si Count a la valeur 0, CopyFrom fixe la position dans Source à 0 avant de lire les données, puis copie tout le contenu de Source dans ce flux. Si Count est supérieur ou égal à 0, CopyFrom lit à partir de la
position en cours dans Source.
Bruce Non, je confond avec les TextFile... C bien la propriété Size à changer :
Indique la longueur, exprimée en octets, de la ressource identifiée par la propriété Handle.
 
property Size: Longint;
 
Description
 
Consultez la propriété Size pour déterminer le nombre d'octets dans la ressource. Affectez Size pour tronquer les informations de la ressource. Il n'est pas possible d'utiliser la propriété Size avec toutes les ressources de communication auxquelles il est possible d'accéder en utilisant un objet THandleStream.
 
Parfois faut lire l'aide ;)
[SDF]Poire

DrLobo a écrit a écrit :

J'utilise un TfileStream pour manipuler un fichier mp3
A la fin de ce fichier je met a jour un tag id3 de taille variable.
Mon probleme est que si le nouveau tag est plus court que l'ancien il restera un bout de l'ancien tag.
Comme je peut couper le bout qui depasse?  




G un ennorme doute là.... les tags ID3 ne sont pas au début du fichier ? à la fin d'un MP3 je crois que C juste le tag standard avec une taille fixe.... (C loin tout ça alors.....)

Bruce Il y as une fonction Trunk si je me souviens bien dans les TFileStream... Attend je look.
 
(Stream = flux).
juju_le_barbare ou tu retires avec un éditeur héxa (très pratique pour la progra, enfin pour moi en tout cas !)
[SDF]Poire Ou tu remplis avec des 0....
juju_le_barbare

JWhy a écrit a écrit :

Tu dois pouvoir tronquer ton fichier en modifiant la propriété .size de ton TFileStream.
 
Si ca ne marche pas, tu peux aussi passer par un stream temporaire (TMemoryStream ou autre) pour y copier le contenu de ton stream d'origine avec le nouveau tag plus court... pas sur d'avoir été tres clair là... :o  
 
 




Si si c'est clair, moi qui ne sias pas ce qu'est un stream j'ai compris ! (c'est quoi un stream ?)

JWhy Tu dois pouvoir tronquer ton fichier en modifiant la propriété .size de ton TFileStream.
 
Si ca ne marche pas, tu peux aussi passer par un stream temporaire (TMemoryStream ou autre) pour y copier le contenu de ton stream d'origine avec le nouveau tag plus court... pas sur d'avoir été tres clair là... :o

 

[edtdd]--Message édité par JWhy--[/edtdd]

juju_le_barbare prends un couteau   ;)
drlobo J'utilise un TfileStream pour manipuler un fichier mp3
A la fin de ce fichier je met a jour un tag id3 de taille variable.
Mon probleme est que si le nouveau tag est plus court que l'ancien il restera un bout de l'ancien tag.
Comme je peut couper le bout qui depasse?

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)