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.
Recherche d'une suite de valeurs dans un fichier binaire Emptypar Pedro Sam 23 Nov 2024 - 15:50

» Un autre pense-bête...
Recherche d'une suite de valeurs dans un fichier binaire Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Recherche d'une suite de valeurs dans un fichier binaire Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Recherche d'une suite de valeurs dans un fichier binaire Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Recherche d'une suite de valeurs dans un fichier binaire Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Recherche d'une suite de valeurs dans un fichier binaire Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Recherche d'une suite de valeurs dans un fichier binaire Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Recherche d'une suite de valeurs dans un fichier binaire Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Recherche d'une suite de valeurs dans un fichier binaire Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Recherche d'une suite de valeurs dans un fichier binaire Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Recherche d'une suite de valeurs dans un fichier binaire Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Recherche d'une suite de valeurs dans un fichier binaire Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Recherche d'une suite de valeurs dans un fichier binaire Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Recherche d'une suite de valeurs dans un fichier binaire Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Recherche d'une suite de valeurs dans un fichier binaire 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 à ne pas rater :
Boutique Nike : -25% dès 50€ sur TOUT le site Nike avec le code ...
Voir le deal

 

 Recherche d'une suite de valeurs dans un fichier binaire

Aller en bas 
AuteurMessage
JL35




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

Recherche d'une suite de valeurs dans un fichier binaire Empty
MessageSujet: Recherche d'une suite de valeurs dans un fichier binaire   Recherche d'une suite de valeurs dans un fichier binaire EmptyLun 5 Avr 2010 - 15:47

Comme Panoramic ne permet pas la lecture de plusieurs octets à la fois dans un fichier binaire, le procédé indiqué est forcément très lent dès lors que la valeur cherchée se trouve loin dans un long fichier (cas par exemple des fichiers images).
Il pourra difficilement être employé dans une boucle de lecture de plusieurs fichiers si les valeurs recherchées sont trop lointaines.

- L'exploration se fait par lecture de blocs successifs (de longueur ajustable lbuf, à voir), entre deux positions données dans le fichier: p1 et p2. On peut évidemment avoir p1=0 et p2=FILEBIN_SIZE(n).
- La séquence cherchée peut être donnée sous forme d'une suite de valeurs décimale, ou d'une chaîne en hexadécimal (dans ce cas précédée de "&h").
- Le résultat (1er emplacement trouvé de la chaîne, ou chaîne non trouvée) est affiché à l'écran pour l'exemple, mais peut être exploité à la demande.

Et voilà le travail:
Code:
' Recseq.bas recherche d'une séquence dans un fichier binaire
DIM f$, p, p1, p2, lbuf, a$, seq$, s$, i%, v%, k%
DIM d, h$, lh%
LABEL Recseq, DecHex, HexDec

p1 = 0: ' position de départ de recherche dans le fichier
p2 = 10000: ' position de fin de recherche
lbuf = 256: ' longueur du buffer de lecture
seq$ = chr$(255) + chr$(192): ' Séquence cherchée, en Ascii (= FFC0)
seq$ = "&hFFC0": ' ou la même, en hexadécimal

f$ = "C:\Graph\Jpg\IMG_2022.jpg"

GOSUB Recseq
IF p <> -1
    d = p: GOSUB DecHex
    PRINT "Trouvé en " + STR$(p) + " (= &h" + h$ + ")"
ELSE
    PRINT "Non trouvé !"
END_IF
END

Recseq:
' recherche de la séquence seq$ dansle fichier binaire f$
' retour: p = position trouvée (ou -1 sinon)
s$ = seq$: h$ = UPPER$(s$)
IF LEFT$(h$, 2) = "&H": ' valeur fournie en hexa, conversion en valeurs décimales
    h$ = UPPER$(MID$(s$, 3, LEN(s$)-2))
    IF BIN_AND(LEN(h$), 1) = 1 THEN h$ = h$ + "0"
    GOSUB HexDec
END_IF
FILEBIN_OPEN_READ 1, f$
FOR p = p1 TO p2 STEP lbuf-LEN(s$)+1
    FILEBIN_POSITION 1, p: a$ = ""
    FOR i% = 1 TO lbuf
        FILEBIN_READ 1, v%: a$ = a$ + CHR$(v%)
    NEXT i%
    k% = INSTR(a$, s$)
    IF k% > 0 THEN p = p + k% - 1: EXIT_FOR
NEXT p
IF k% = 0 THEN p = -1
FILEBIN_CLOSE 1
RETURN

DecHex:
' conversion décimal/hexa de d, résultat h$ (complété si utile à lh% caractères)
h$=""
REPEAT
    h$ = MID$("0123456789ABCDEF", 16*(d/16-INT(d/16))+1, 1) + h$: d = INT(d/16)
UNTIL d <= 0
IF LEN(h$) < lh% THEN h$ = STRING$(lh% - LEN(h$), "0") + h$
RETURN
   
HexDec:
' conversion hexadécimal/décimal de h$, résultat dans s$
s$ = ""
FOR i% = 1 TO LEN(h$) STEP 2
    v% = 16*(INSTR("0123456789ABCDEF", MID$(h$, i%, 1))-1)
    v% = v% + INSTR("0123456789ABCDEF", MID$(h$, i%+1, 1))-1
    s$ = s$ + CHR$(v%)
NEXT i%
RETURN
Revenir en haut Aller en bas
 
Recherche d'une suite de valeurs dans un fichier binaire
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Ecriture dans un fichier binaire
» Ecriture dans un fichier binaire
» Lecture/écriture par blocs dans un fichier binaire
» Recherche d'un item dans un fichier.
» Conversion d'un fichier binaire en lignes de Datas

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: