Bacterius
Messages postés3792Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention 3 juin 2016
-
18 avril 2009 à 23:47
blueperfect
Messages postés234Date d'inscriptionmardi 13 novembre 2007StatutMembreDernière intervention21 novembre 2013
-
19 avril 2009 à 16:08
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
blueperfect
Messages postés234Date d'inscriptionmardi 13 novembre 2007StatutMembreDernière intervention21 novembre 2013 19 avril 2009 à 16:08
Médiocre, le TFileStream ? à explorer...
Quand tu passes par les API de bas niveau, il te faut vérifier les locks éventuels...
>> On apprends à tout age ! MsDos, comme CP/M traite les fichiers comme des entrées/sorties :
ainsi :
copy A.TEXT + CON > C.TEXT
se lit comme ajoute les entrées de la console (le clavier) au fichier A.TEXT, et redirige les vers C.TEXT...
Par contre il ne gère pas les recouvrements :
copy A.TEXT + B.TEXT > A.TEXT est incorrect !
Bacterius
Messages postés3792Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention 3 juin 201610 19 avril 2009 à 15:57
Tu veux dire pourquoi je n'ai pas utilisé un TFileStream pour la lecture/écriture (1) ou pourquoi je n'ai pas créé une classe qui enveloppe, justement, un fichier et ses métadonnées (2) ?
(1) : Pour la raison citée au-dessus de ton commentaire. Mais si il s'agit de recoder les TStream ...
(2) : Je n'y ai pas pensé sur le coup
Pour la simulation je savais pas lol.
Cordialement, Bacterius !
blueperfect
Messages postés234Date d'inscriptionmardi 13 novembre 2007StatutMembreDernière intervention21 novembre 2013 19 avril 2009 à 15:02
Simulation du /A du DOS !
* Pourquoi des fonctions, et pas un TPersistent (un TFileStream) ?
Bacterius
Messages postés3792Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention 3 juin 201610 19 avril 2009 à 12:54
Ok Francky, je comprends tout à fait ;) (tu vas vite te dégonfler t'inquiète pas lol)
Mais franchement je trouve que chaque fois que j'ai utilisé un TFileStream les performances étaient très très très médiocres alors que chaque fois que je passe par les API de bas niveau ça va beaucoup plus vite. Enfin merci pour le conseil :)
Et merci pour l'info également PCMF3 :)
Cordialement, Bacterius !
PCMF3
Messages postés1Date d'inscriptionlundi 19 juillet 2004StatutMembreDernière intervention19 avril 2009 19 avril 2009 à 11:20
Ce n’est pas nouveau de marquer des fichiers avec des informations. On nome cela des métadonnées. Des normes existent à cet effet, si bien sur le besoin est de permettre un échange avec s’autres applications. Les dernières techniques est celle poussée par Adobe avec la norme XMP.
Encapsuler de l’XMP (cela se fait) cela serait une bonne idée. L’XMP étant une structure XML dont les descriptions sont rassemblées dans des espaces de nom déclarés (donc ouvert. L'encapsulation est réalisable directement ou en ADS (NTFS seulement) ou accompagné d'un "side car" mais dans ce cas ce n'est bien sur plus de l'encasulation à proprement parlé.
Voir pour info le lien
http://www.adobe.com/devnet/xmp/
Francky23012301
Messages postés400Date d'inscriptionsamedi 6 août 2005StatutMembreDernière intervention11 février 20161 19 avril 2009 à 04:32
Si si moi je l'ai vu ton source précédent ^^.
Ce qui me permet de te faire une remarque : vu la fréquence à laquelle tu postes (Au moins un source par semaine), je suis pas sur que les objectifs soient toujours atteints. Enfin bref, si tu arrivais à controler ton besoin de compétition (Cirec, David, Mauricio), ca serait cool pour tout le monde ;) (Perso je commence à trouver cela gonflant ;)).
Pour en venir à ton source : Cette technique qui consiste à injecter des données à un fichier, méritait elle vraiment un source ? Je suis pas sur. C'est ultra connue, et sur CS on trouve plein de projets utilisant une telle technique. Ton source n'apporte sur ce coup, vraiment rien de novateur.
Par contre zappe tes ReadFile et WriteFile, et utilise les streams dont les procédures sont elles optimisées ;).
Ps : Ne prend pas mal mon intervention (Si tu veux en discuter en MP, pas de probleme ;))
Bacterius
Messages postés3792Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention 3 juin 201610 18 avril 2009 à 23:47
19 avril 2009 à 16:08
Quand tu passes par les API de bas niveau, il te faut vérifier les locks éventuels...
>> On apprends à tout age ! MsDos, comme CP/M traite les fichiers comme des entrées/sorties :
ainsi :
copy A.TEXT + CON > C.TEXT
se lit comme ajoute les entrées de la console (le clavier) au fichier A.TEXT, et redirige les vers C.TEXT...
Par contre il ne gère pas les recouvrements :
copy A.TEXT + B.TEXT > A.TEXT est incorrect !
19 avril 2009 à 15:57
(1) : Pour la raison citée au-dessus de ton commentaire. Mais si il s'agit de recoder les TStream ...
(2) : Je n'y ai pas pensé sur le coup
Pour la simulation je savais pas lol.
Cordialement, Bacterius !
19 avril 2009 à 15:02
* Pourquoi des fonctions, et pas un TPersistent (un TFileStream) ?
19 avril 2009 à 12:54
Mais franchement je trouve que chaque fois que j'ai utilisé un TFileStream les performances étaient très très très médiocres alors que chaque fois que je passe par les API de bas niveau ça va beaucoup plus vite. Enfin merci pour le conseil :)
Et merci pour l'info également PCMF3 :)
Cordialement, Bacterius !
19 avril 2009 à 11:20
Encapsuler de l’XMP (cela se fait) cela serait une bonne idée. L’XMP étant une structure XML dont les descriptions sont rassemblées dans des espaces de nom déclarés (donc ouvert. L'encapsulation est réalisable directement ou en ADS (NTFS seulement) ou accompagné d'un "side car" mais dans ce cas ce n'est bien sur plus de l'encasulation à proprement parlé.
Voir pour info le lien
http://www.adobe.com/devnet/xmp/
19 avril 2009 à 04:32
Ce qui me permet de te faire une remarque : vu la fréquence à laquelle tu postes (Au moins un source par semaine), je suis pas sur que les objectifs soient toujours atteints. Enfin bref, si tu arrivais à controler ton besoin de compétition (Cirec, David, Mauricio), ca serait cool pour tout le monde ;) (Perso je commence à trouver cela gonflant ;)).
Pour en venir à ton source : Cette technique qui consiste à injecter des données à un fichier, méritait elle vraiment un source ? Je suis pas sur. C'est ultra connue, et sur CS on trouve plein de projets utilisant une telle technique. Ton source n'apporte sur ce coup, vraiment rien de novateur.
Par contre zappe tes ReadFile et WriteFile, et utilise les streams dont les procédures sont elles optimisées ;).
Ps : Ne prend pas mal mon intervention (Si tu veux en discuter en MP, pas de probleme ;))
18 avril 2009 à 23:47
Cordialement, Bacterius !