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
» Calculatrice
par papydall Hier à 22:45

» Orbites de l’ensemble de Mandelbrot
par Minibug Hier à 21:32

» Planétarium virtuel.
par Pedro Alvarez Hier à 17:07

» Demande pour Jack concernant PanExpress
par Minibug Hier à 11:04

» EPP_V01 éditeur pour Panoramic
par Minibug Mer 19 Sep 2018 - 21:03

» [RESOLU] Quelle ligne est sélectionnée dans SYNEDIT ?
par Jean Claude Mer 19 Sep 2018 - 21:02

» PanExpress : l'éditeur Panoramic avec création d'objet
par Minibug Mer 19 Sep 2018 - 15:58

» Petit coucou en passant !
par Minibug Dim 16 Sep 2018 - 15:03

» bug SEVERE fnc+sub : variables globales corrompus
par silverman Dim 16 Sep 2018 - 13:38

» Verrouiller un form en avant plan
par silverman Dim 16 Sep 2018 - 12:50

» Fin de l'aventure.
par Pedro Alvarez Sam 15 Sep 2018 - 18:16

» Demande d'explications Sur File_Write & File_writeln
par Jack Sam 15 Sep 2018 - 17:26

» MEMO avec des possibilités de commande
par Oscaribout Mer 12 Sep 2018 - 1:06

» La théorie du chaos
par jean_debord Mar 11 Sep 2018 - 9:30

» Version instantanée V 0.9.29i2 du 4/09/2018
par silverman Mer 5 Sep 2018 - 10:15

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Septembre 2018
LunMarMerJeuVenSamDim
     12
3456789
10111213141516
17181920212223
24252627282930
CalendrierCalendrier

Partagez | 
 

 Binaire vous avez dit binaire mais....

Aller en bas 
AuteurMessage
Yannick

avatar

Nombre de messages : 8083
Age : 47
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: Binaire vous avez dit binaire mais....   Lun 29 Sep 2014 - 21: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 : 6326
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Binaire vous avez dit binaire mais....   Lun 29 Sep 2014 - 22: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 - 22:11, édité 2 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 8083
Age : 47
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Lun 29 Sep 2014 - 22: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 : 6326
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Binaire vous avez dit binaire mais....   Lun 29 Sep 2014 - 22: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 : 8083
Age : 47
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Lun 29 Sep 2014 - 22: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 - 22:46, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



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

MessageSujet: Re: Binaire vous avez dit binaire mais....   Lun 29 Sep 2014 - 22: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 : 8083
Age : 47
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Lun 29 Sep 2014 - 22: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 : 6326
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Binaire vous avez dit binaire mais....   Lun 29 Sep 2014 - 23: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 : 8083
Age : 47
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Lun 29 Sep 2014 - 23: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 : 6326
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Binaire vous avez dit binaire mais....   Lun 29 Sep 2014 - 23: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....
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Erreur : Les mots de passe que vous avez tapés sont différents. Désolé, mais cette adresse e-mail est invalide.
» Le dernier livre que vous avez lu...
» La clef d'activation que vous avez fournie ne correspond pas
» 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 ?

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: