FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Logiciel de planétarium.
1.93 du 25 Février 2013: gestion de fichiers binaires Emptypar Pedro Aujourd'hui à 8:08

» Un autre pense-bête...
1.93 du 25 Février 2013: gestion de fichiers binaires Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
1.93 du 25 Février 2013: gestion de fichiers binaires Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
1.93 du 25 Février 2013: gestion de fichiers binaires Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
1.93 du 25 Février 2013: gestion de fichiers binaires Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
1.93 du 25 Février 2013: gestion de fichiers binaires Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
1.93 du 25 Février 2013: gestion de fichiers binaires Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
1.93 du 25 Février 2013: gestion de fichiers binaires Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
1.93 du 25 Février 2013: gestion de fichiers binaires Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
1.93 du 25 Février 2013: gestion de fichiers binaires Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
1.93 du 25 Février 2013: gestion de fichiers binaires Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
1.93 du 25 Février 2013: gestion de fichiers binaires Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
1.93 du 25 Février 2013: gestion de fichiers binaires Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
1.93 du 25 Février 2013: gestion de fichiers binaires Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
1.93 du 25 Février 2013: gestion de fichiers binaires Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
Le Deal du moment : -25%
PC Portable Gamer 16,1” HP Victus 16 – 16 ...
Voir le deal
749.99 €

 

 1.93 du 25 Février 2013: gestion de fichiers binaires

Aller en bas 
2 participants
AuteurMessage
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

1.93 du 25 Février 2013: gestion de fichiers binaires Empty
MessageSujet: 1.93 du 25 Février 2013: gestion de fichiers binaires   1.93 du 25 Février 2013: gestion de fichiers binaires EmptyLun 25 Fév 2013 - 23:38

Nouvelle version:
KGF.dll V1.93 du 25 Février 2013

J'ai ajouté 4 fonctions, pour donner plus de possibilités dans la gestion des fichiers binaires:

1. Retourner la longueur d'un fichier binaire NON OUVERT:
KGF.dll: res% = dll_call1("GetBinaryFileSize",adr(nom$))
KGF_SUB.bas: GetBinaryFileSize(nom$) retourne la variable GetBinaryFileSize

2. lire un fichier binaire entier dans une variable de type chaîne de caractères:
KGF.dll: res% = dll_call2("ReadBinaryFileToString",adr(nom$),adr(buf$))
KGF_SUB.bas: ReadBinaryFileToString(nom$) retourne la variable ReadBinaryFileToString$

3. écrire une variable de type chaîne de caractères dans un fichier binaire:
KGF.dll: res% = dll_call2("WriteStringToBinaryFile",adr(nom$),adr(buf$))
KGF_SUB.bas: WriteStringToBinaryFile(nom$,buf$)

4. ajouter une variable de type chaîne de caractères à la fin d'un fichier binaire:
KGF.dll: res% = dll_call2("AppendStringToBinaryFile",adr(nom$),adr(buf$))
KGF_SUB.bas: AppendStringToBinaryFile(nom$,buf$)

Fichiers modifiés:
KGF.dll, KGF_SUB.bas

La doc dans KGF.chm suivra demain.

EDIT

Si d'autres fonctions utiles vous intéressent, c'est faisable. Je pense par exemple à une fonction remplaçant n caractères à partir de la position p, par une chaîne de caractères. Et ce en 2 modes: remplacer exactement les n caractères par les x caractères de la chaîne de sorte que le fichier résultant éventuellement rallonge ou raccourcit, et compléter les x caractères par un caractère de remplissage si x<n ou tronquer x à n si x>n. Ceci permettrait de modifier un fichier à une position quelconque.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

1.93 du 25 Février 2013: gestion de fichiers binaires Empty
MessageSujet: Re: 1.93 du 25 Février 2013: gestion de fichiers binaires   1.93 du 25 Février 2013: gestion de fichiers binaires EmptyMar 26 Fév 2013 - 21:48

J'ai eu une fausse joie avec la dll qui lit un fichier binaire dans une chaîne de caractères...

Le résultat n'est pas juste puisque les zéros machine sont dans la chaîne remplacés par des espaces ascii (=32)... et c'est pour moi inexploitable.
(un exemple: dans l'en-tête d'un fichier bmp les dimensions w et h sont sur 2 fois 4 octets consécutifs. Si on prend 32 à la place de 0, ça fausse tout, évidemment)

Je ne sais pas quelle est la contrainte qui fait ça, toujours est-il qu'une chaîne de caractères peut très bien comporter des zéros binaires (par exemple en Freebasic je pouvais lire l'intégralité du fichier dans une chaîne qui était l'image exacte du contenu du fichier, ce qui n'est pas le cas ici).

EDIT: Je crois que c'est bien pire que ça, et que le transfert dans la chaîne s'arrête dès le premier zéro. Ainsi pour un fichier .jpg j'ai bien les 4 premiers octets: FF D8 FF E0, et tout le reste de la chaîne est composée des espaces fournis d'origine.
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

1.93 du 25 Février 2013: gestion de fichiers binaires Empty
MessageSujet: Re: 1.93 du 25 Février 2013: gestion de fichiers binaires   1.93 du 25 Février 2013: gestion de fichiers binaires EmptyMar 26 Fév 2013 - 22:08

Oups... je vais regarder cela. Je crois savoir d'ou cela vient...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

1.93 du 25 Février 2013: gestion de fichiers binaires Empty
MessageSujet: Re: 1.93 du 25 Février 2013: gestion de fichiers binaires   1.93 du 25 Février 2013: gestion de fichiers binaires EmptyMar 26 Fév 2013 - 22:14

OK. Essaie maintenant stp et tiens-moi au courant.

Et - recharge non seulement KGF.dll, mais aussi KGF_SUB.bas. On est passé à la version V1.94 entretemps...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

1.93 du 25 Février 2013: gestion de fichiers binaires Empty
MessageSujet: Re: 1.93 du 25 Février 2013: gestion de fichiers binaires   1.93 du 25 Février 2013: gestion de fichiers binaires EmptyMar 26 Fév 2013 - 22:55

Merci Klaus, je regarde (en fait je lance directement la dll, sans passer par kgf_sub)

IMPECCABLE, j'ai bien maintenant tous les caractères, y compris les zéros !
Merci Klaus, pour la réaction à la vitesse de l'éclair, je peux maintenant aller de l'avant !
Revenir en haut Aller en bas
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

1.93 du 25 Février 2013: gestion de fichiers binaires Empty
MessageSujet: Re: 1.93 du 25 Février 2013: gestion de fichiers binaires   1.93 du 25 Février 2013: gestion de fichiers binaires EmptyMar 26 Fév 2013 - 23:03

J'ai édité, j'aurais dû faire un nouveau message.
Mais tout est bon maintenant.
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

1.93 du 25 Février 2013: gestion de fichiers binaires Empty
MessageSujet: Re: 1.93 du 25 Février 2013: gestion de fichiers binaires   1.93 du 25 Février 2013: gestion de fichiers binaires EmptyMar 26 Fév 2013 - 23:16

Super !

Le problème venait de la façon bizarre que je dois utiliser pour retourner une chaîne de caractères à Panoramic. Il faut en permanence surveiller si l'on rencontre un caractère <0>, car ce caractère marque la fin d'une chaîne de caractères. Alors, pour le cas précis de lecture d'un fichier binaire, j'ai désactivé ce test, et je passe TOUS les caractères de la chaîne à retourner, MEME si je dépasse le <0> terminal de la chaîne à passer OU de la chaîne réceptrice. Il faut donc absolument être certain que la chaîne réceptrice soit suffisamment longue pour contenir toute la chaîne à transmettre. La procédure ReadBinaryFileToString dans KGF_SUB.bas fait cela de façon interne. Si tu appelles les fonctions de KGF.dll directement, il faut le faire de façon similaire, en utilisant KGF_res% = dll_call1("GetBinaryFileSize",adr(nom$)) comme je le fais dans cette procédure, afin de dimensionner la variable réceptrice correctement, avant d'appeler dll_call2("ReadBinaryFileToString",... Sinon, violation de mémoire, voire pire !

Mais, puisque cela marche chez toi, tu as certainement vu ce détail et tu l'as appliqué. Je donne ces information surtout à l'attention des autres lecteurs, en attendant la doc exhaustive de ces fonctions !

As-tu vu que la V1.94 est sortie ? Nouvelle fonction sur fichier binaire (modification à l'intérieur !) et correction d'un léger bug dans KGF_SUB.bas (erreur de nom de variable dans une procédure).
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

1.93 du 25 Février 2013: gestion de fichiers binaires Empty
MessageSujet: Re: 1.93 du 25 Février 2013: gestion de fichiers binaires   1.93 du 25 Février 2013: gestion de fichiers binaires EmptyMar 26 Fév 2013 - 23:33

Effectivement, j'avais commencé par la violation mémoire, et j'étais allé voir dans KGF_SUB où j'ai vu que tu fournissais préalablement une chaîne de la bonne longueur remplie d'espaces, donc j'ai fait pareil.

Oui j'ai bien vu pour les autres fonctions, je n'en ai pas l'usage pour le moment (je ne fais que lire), mais ça peut être très utile (pour notre ami Mumu entre autres).
Et je pense à des images bmp, pour incruster des figures par exemple, il suffit d'aller modifier des valeurs à l'intérieur du fichier, ça ouvre des perspectives.
(enfin, ça on peut le faire aussi en chargeant l'image dans un picture et en dessinant dessus)

Merci en tout cas Klaus.
Revenir en haut Aller en bas
Contenu sponsorisé





1.93 du 25 Février 2013: gestion de fichiers binaires Empty
MessageSujet: Re: 1.93 du 25 Février 2013: gestion de fichiers binaires   1.93 du 25 Février 2013: gestion de fichiers binaires Empty

Revenir en haut Aller en bas
 
1.93 du 25 Février 2013: gestion de fichiers binaires
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» 1.90 du 23 Février 2013: gestion 600 dpi en impression
» 1.97 du 28 Février 2013: accélération des fonctions
» 1.91 du 24 Février 2013: extension de PrinterFunction
» 1.95 du 27 Février 2013: fonction ReadBlockFromBinaryFile...
» 1.96 du 27 Février 2013: ajout ReadBlockFromBinaryFile

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: Activité des sites créés par les Panoramiciens. :: Le site de Klaus-
Sauter vers: