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

  FORUM HardWare.fr
  Programmation

  [delphi] Mettre a jour un fichier

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[delphi] Mettre a jour un fichier

n°86126
drlobo
Posté le 04-01-2002 à 17:01:38  profilanswer
 

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?

mood
Publicité
Posté le 04-01-2002 à 17:01:38  profilanswer
 

n°86143
juju_le_ba​rbare
Vous fiez pas aux apparences !
Posté le 04-01-2002 à 19:01:33  profilanswer
 

prends un couteau   ;)


---------------
Visitez mon site : http://www.jujubarbare.linux-fan.com
n°86150
JWhy
je peux plier (héhé)
Posté le 04-01-2002 à 19:11:45  profilanswer
 

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]


---------------
www.alliancefrancophone.org ... Home is where the heart is
n°86158
juju_le_ba​rbare
Vous fiez pas aux apparences !
Posté le 04-01-2002 à 19:19:51  profilanswer
 

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 ?)


---------------
Visitez mon site : http://www.jujubarbare.linux-fan.com
n°86160
[SDF]Poire
Vive Grumly
Posté le 04-01-2002 à 19:21:20  profilanswer
 

Ou tu remplis avec des 0....


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
n°86162
juju_le_ba​rbare
Vous fiez pas aux apparences !
Posté le 04-01-2002 à 19:22:59  profilanswer
 

ou tu retires avec un éditeur héxa (très pratique pour la progra, enfin pour moi en tout cas !)


---------------
Visitez mon site : http://www.jujubarbare.linux-fan.com
n°86164
Bruce
Music 4 your ears!
Posté le 04-01-2002 à 19:24:36  profilanswer
 

Il y as une fonction Trunk si je me souviens bien dans les TFileStream... Attend je look.
 
(Stream = flux).


---------------
A+++ Bruce - http://www.bheller.com
n°86166
[SDF]Poire
Vive Grumly
Posté le 04-01-2002 à 19:25:24  profilanswer
 

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.....)


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
n°86167
Bruce
Music 4 your ears!
Posté le 04-01-2002 à 19:26:35  profilanswer
 

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 ;)


---------------
A+++ Bruce - http://www.bheller.com
n°86168
[SDF]Poire
Vive Grumly
Posté le 04-01-2002 à 19:27:02  profilanswer
 

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.


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
mood
Publicité
Posté le 04-01-2002 à 19:27:02  profilanswer
 

n°86169
Bruce
Music 4 your ears!
Posté le 04-01-2002 à 19:27:47  profilanswer
 

[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...


---------------
A+++ Bruce - http://www.bheller.com
n°86176
[SDF]Poire
Vive Grumly
Posté le 04-01-2002 à 19:31:29  profilanswer
 

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...))


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
n°86179
Bruce
Music 4 your ears!
Posté le 04-01-2002 à 19:33:12  profilanswer
 

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


---------------
A+++ Bruce - http://www.bheller.com
n°86182
[SDF]Poire
Vive Grumly
Posté le 04-01-2002 à 19:43:19  profilanswer
 

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


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
n°86202
drlobo
Posté le 04-01-2002 à 20:38:17  profilanswer
 

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

n°86207
drlobo
Posté le 04-01-2002 à 20:44:26  profilanswer
 

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


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [delphi] Mettre a jour un fichier

 

Sujets relatifs
[php] fichier ^M[Delphi] Créer une fenêtre avec Netstat ou ping
[Delphi] Mettre une Form sous forme d'applet dans une page HTML[VB] executer un fichier .exe
[algo] tri de composants sur une fiche Delphi[Delphi] Changer le curseur de la souris, mais sur tout l'écran !
[Delphi/SQL] Inclure le contenu d'un Tedit dans une requete SQL ...[Java] Fichier de config, comment ne pas en hardcoder le path ?
[Delphi]c'est quoi la fonction pour completer une chaine? 
Plus de sujets relatifs à : [delphi] Mettre a jour un fichier


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR