FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» Button_picture
par pascal10000 Aujourd'hui à 11:41

» Pourquoi le compilateur stagne
par Minibug Aujourd'hui à 11:09

» 4 (en analyse): SYNEDIT_TARGET_IS_OBJECT devient inactif
par Jack Aujourd'hui à 10:09

» 3 (en analyse): Mauvaise interprétation du string "THEN"
par Jack Aujourd'hui à 10:03

» KGF.dll - demandes ou suggestions de modifications ou ajouts
par Marc Aujourd'hui à 10:00

» KGF_dll - nouvelles versions
par pascal10000 Hier à 17:27

» Mah-Jong européen new-look
par Minibug Mar 12 Déc 2017 - 22:31

» track_bar circulaire
par Klaus Mar 12 Déc 2017 - 13:54

» API Windows
par Klaus Mar 12 Déc 2017 - 3:21

» Cartes de voeux, menus, etc.
par JL35 Lun 11 Déc 2017 - 17:48

» a l'aide klaus
par Minibug Lun 11 Déc 2017 - 11:42

» bug SYNEDIT_TARGET_IS_OBJECT
par Jack Lun 11 Déc 2017 - 0:16

» Jukebox : Serge Reggiani
par papydall Sam 9 Déc 2017 - 5:58

» Ecouter la radio fm sur votre pc
par pascal10000 Sam 9 Déc 2017 - 3:42

» anomalie
par Klaus Sam 9 Déc 2017 - 3:21

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Décembre 2017
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
25262728293031
CalendrierCalendrier

Partagez | 
 

 Binaire vous avez dit binaire mais....

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Yannick

avatar

Nombre de messages : 8002
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: Binaire vous avez dit binaire mais....   Lun 29 Sep 2014 - 22:52

Je constate que nous avons des commande de lecture et des commandes d' écriture en binaire
mais comment fait on pour remplacer une portion de fichier ?.... scratch

Je me trompe ou il faut tout ré-écrire avec les nouvelles données ?... Crying or Very sad
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



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

MessageSujet: Re: Binaire vous avez dit binaire mais....   Lun 29 Sep 2014 - 23:03

Non ygeronimi, il suffit de se positionner au bon endroit, de fixer le nombre d'octets et d'écrire, ça va remplacer l'existant.
Le mieux je pense (c'est ce que je fais), recopier la chaîne à écrire octet par octet dans un tableau d'entiers [chaque octet du tableau = Asc(Mid$(a$,x,1)) ], et d'utiliser FILEBIN_BLOCK_WRITE N,C,v%(p)
N = n° du fichier
C = nombre d'octets du tableau à écrire
v%(p) = tableau contenant les données à écrire, un octet par élément (p = élément de départ, = 0 ou 1, c'est selon)
Auparavant il faut se positionner au bon endroit:
FILEBIN_POSITION N,P
C'est ce que je fais pour le bloc de 128 octets.

Sinon il faut se positionner (Filebin_Position), puis écrire octet par octet (128 fois) avec FILEBIN_WRITE N,V ce qui revient au même, le pointeur d'écriture se déplace automatiquement au fur et à mesure.

La première méthode me parait la plus rationnelle, mais les deux doivent marcher.


Dernière édition par JL35 le Lun 29 Sep 2014 - 23:11, édité 2 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 8002
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Lun 29 Sep 2014 - 23:07

Comme j' ai écrit dans le post approprié, filebin_open_write crée un NOUVEAU fichier
donc, tu écris dans un fichier vide...

Il manque une commande filebin_open_append.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



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

MessageSujet: Re: Binaire vous avez dit binaire mais....   Lun 29 Sep 2014 - 23:16

Ben non, ça ne crée un nouveau fichier que s'il n'existe pas au départ, mais s'il existe ça le modifie, c'est tout.
Ou bien ça le rallonge si tu écris à la fin...

Effectivement, ce n'est pas ce que dit la doc ! je regarde de plus près...

EDIT:
Je viens de vérifier, mais heureusement la doc est fausse, on peut ouvrir le fichier avec FILEBIN_OPEN_WRITE,
écrire dedans n'importe où avec FILEBIN_POSITION, puis FILEBIN_BLOCK_WRITE, et les données seront bien écrite à l'endroit voulu, en remplacement des précédentes, le reste du fichier restant intact.
Code:
DIM f$, sz%, v%(20)
f$ = "C:\TEMP\Testa.htm": ' fichier d'essai quelconque (attention, sera modifié !)
FILEBIN_OPEN_READ 9,f$: sz%=FILEBIN_SIZE(9): FILEBIN_CLOSE 9: ' taille du fichier, pour écrire à la fin
v%(0) = 65: v%(1) = 66: v%(2) = 67: v%(3) = 68
FILEBIN_OPEN_WRITE 9,f$
FILEBIN_POSITION 9,sz%: ' Ajout de 'ABCD' en fin de fichier
FILEBIN_BLOCK_WRITE 9,4,v%(0)
v%(0) = 69: v%(1) = 70: v%(2) = 71: v%(3) = 72
FILEBIN_POSITION 9,50: ' Ajout de 'EFGH' en position 50
FILEBIN_BLOCK_WRITE 9,4,v%(0)
FILEBIN_CLOSE 9
END

essaye, tu verras.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 8002
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Lun 29 Sep 2014 - 23:42

Nous voilà sauf alors !... Laughing
Je me voyais déjà entrain de faire de la recherche sous-marine dans la doc de kgf... Laughing

Il ne me reste plus qu' à regarder comment tu remplis les octets vides pour éviter :

ancien    : Pierre Perret
nouveau : J brel
resultat  : Jibrel Perret

lol!


Dernière édition par ygeronimi le Lun 29 Sep 2014 - 23:46, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



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

MessageSujet: Re: Binaire vous avez dit binaire mais....   Lun 29 Sep 2014 - 23:45

Fais quand même l'essai avec un petit fichier texte quelconque pour vérifier, avant et après, mais tu as raison, heureusement que c'est comme ça ! moi je le faisais innocemment sans avoir regardé la doc... Very Happy

Pour remplir les octets vides: avec des zéro machine.
Si c'est avec un tableau, c'est tout simplement v%(x) = 0
Ou si c'est dans une chaîne ascii: CHR$(0)

Il faut remplacer entièrement le champ de 30 octets avec une chaîne de 30 octets complétée par des zéros (remplacer entièrement les valeurs précédentes).
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 8002
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Lun 29 Sep 2014 - 23:51

J' ai une copie d' un fichier Mp3 qui me sert de cobaye... Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



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

MessageSujet: Re: Binaire vous avez dit binaire mais....   Mar 30 Sep 2014 - 0:01

J'ai mis une petite note concernant la doc de cette fonction dans la rubrique 'bugs'
J'espère simplement que Jack va modifier la doc, et non pas la fonction pour la conformer à la doc ! on serait dans de beaux draps... Very Happy
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 8002
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Mar 30 Sep 2014 - 0:20

On aurait les deux pieds dedans, tu veux dire... Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



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

MessageSujet: Re: Binaire vous avez dit binaire mais....   Mar 30 Sep 2014 - 0:22

Et je ne suis pas sûr que ça nous porterait bonheur... Very Happy

Et sur cette remarque hautement philosophique... Sleep
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Binaire vous avez dit binaire mais....   

Revenir en haut Aller en bas
 
Binaire vous avez dit binaire mais....
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Vous avez demandé la POLICE, ne quittez pas...
» Le dernier livre que vous avez lu...
» Vous avez déniché une offre promotionnelle et vous souhaitez en faire profiter tout le monde ?
» Vous avez besoin d'une carte qui gère 8 écrans ?
» [~Resolu] Erreur javaw.exe

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: A l'aide!-
Sauter vers: