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 expression dans un source Emptypar Pedro Sam 23 Nov 2024 - 15:50

» Un autre pense-bête...
Recherche d'une expression dans un source Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Recherche d'une expression dans un source Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Recherche d'une expression dans un source Emptypar JL35 Mar 12 Nov 2024 - 19:57

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

» traitement d'une feuille excel
Recherche d'une expression dans un source Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Recherche d'une expression dans un source Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Recherche d'une expression dans un source Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Recherche d'une expression dans un source Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Recherche d'une expression dans un source Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Recherche d'une expression dans un source Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Recherche d'une expression dans un source Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Recherche d'une expression dans un source Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Recherche d'une expression dans un source Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Recherche d'une expression dans un source 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 :
Boutique Nike : -25% dès 50€ sur TOUT le ...
Voir le deal

 

 Recherche d'une expression dans un source

Aller en bas 
5 participants
AuteurMessage
Marc

Marc


Nombre de messages : 2466
Age : 63
Localisation : TOURS (37)
Date d'inscription : 17/03/2014

Recherche d'une expression dans un source Empty
MessageSujet: Recherche d'une expression dans un source   Recherche d'une expression dans un source EmptySam 18 Nov 2017 - 23:53

Bonsoir à tous !

Voici un petit programme de recherche dans un source.

Bien qu’il soit destiné à être greffé à mon programme d’analyse ( https://panoramic.1fr1.net/t5501-analyser-un-code-panoramic ), c’est une version totalement autonome et opérationnelle.

La recherche d’une expression est un peu particulière : Le programme affiche simultanément toutes les lignes où est présente l’expression recherchée et occulte les lignes non concernées. Nous avons donc une vue générale de la recherche.

Après avoir chargé un source, cliquez sur   >> Search >>   puis tapez les caractères que vous souhaitez trouver.

N’hésitez pas à me faire remonter vos remarques.

Bonne programmation et bon dimanche à tous !

Code:
' ------------------------------------------------------------------------------
'  PANORAMIC SEARCH
'  MARC37 - November 2017 - Panoramic v0.9.28.i12
'  http://panoramic-language.pagesperso-orange.fr/French/index.html
'  http://panoramic.top-forum.net
' ------------------------------------------------------------------------------
DIM a$ : ' file name to analyze
DIM b$ : ' Reading a line of a$
DIM c$ : ' uppercase of b$
DIM d$ : ' formatted line number as ######
DIM i%, j% : ' variable loop FOR/NEXT
DIM LineNumber%, FontSize%, MemoInUse%
DIM Word$, UpperWord$
LABEL Resize, OpenFile, Bigger, Smaller, About, Quit
LABEL FindText, DataEntry, StringSearch
FontSize% = 10
DLIST 50 : ' hidden object => source code to analyze
Mask()
ON_CLOSE 0, Quit
ON_RESIZE 0, Resize
ON_CLICK 1, OpenFile
ON_CLICK 2, Quit
ON_CLICK 3, About
ON_CLICK 4, Smaller
ON_CLICK 5, Bigger
ON_CLiCK 6, FindText
END
' ------------------------------------------------------------------------------
FindText:
    OFF_CLICK 6
    FOR i%=20 TO 22
        HIDE i%
    NEXT i%
    SHOW 21
    MemoInUse% = 21
    IF TEXT$(6)="  >> Search >>" THEN TEXT 6,""        
    Word$=TEXT$(6)
    DISPLAY
    GOSUB StringSearch
RETURN
' ------------------------------------------------------------------------------
DataEntry:
    Word$=TEXT$(6)
    GOSUB StringSearch
RETURN
' ------------------------------------------------------------------------------
StringSearch:
    UpperWord$ = UPPER$(Word$)
    CLEAR 21
    SHOW 100
    DISPLAY
    FOR LineNumber% = 1 to COUNT(50)
        IF Word$=""
                b$=ITEM_READ$(20,LineNumber%)
            ITEM_ADD 21,b$
        ELSE    
            b$=UPPER$(ITEM_READ$(50,LineNumber%))
            IF INSTR(b$,UpperWord$)>0
                b$=ITEM_READ$(20,LineNumber%)
                ITEM_ADD 21,b$
            END_IF
        END_IF        
        ON_CHANGE 6, DataEntry
    NEXT LineNumber%
    HIDE 100
RETURN
' ------------------------------------------------------------------------------
OpenFile:
    IF OBJECT_EXISTS(40)=0 THEN OPEN_DIALOG 40
    FILTER 40,"*.bas|*.bas"
    a$=FILE_NAME$(40)
    IF a$="_" THEN RETURN
    CLEAR 50
    FOR i% = 20 TO 21
        CLEAR i%
    NEXT i%    
    FOR i% = 4 TO 6
        HIDE i%
    NEXT i%
    OFF_RESIZE 0
    OFF_CLICK 1
    OFF_CHANGE 6
    ON_CLiCK 6, FindText
    LineNumber% = 1
    FOR i% = 21 to 22
        HIDE i%
    NEXT i%
    SHOW 20
    TEXT 6, "  >> Search >>"  
    waitingMessage()
    FILE_OPEN_READ 40,a$
    CAPTION 0, a$
    WHILE FILE_EOF(40)<>1
        FILE_READLN 40,b$
        d$=STR$(LineNumber%)
        WHILE LEN(d$)<6
            d$=" "+d$
        END_WHILE
        c$=UPPER$(b$)
        ITEM_ADD 50, b$
        ITEM_ADD 20, d$+" "+b$
        LineNumber% = LineNumber% + 1
    END_WHILE
    FILE_CLOSE 40
    HIDE 100
    FOR i% = 4 TO 6
        SHOW i%
    NEXT i%
    ON_RESIZE 0, Resize
    ON_CLICK 1, OpenFile
RETURN
' ------------------------------------------------------------------------------
About:
    FOR i%=20 TO 22
        HIDE i%
    NEXT i%
    SHOW 22
    MemoInUse% = 22
    ON_CLiCK 6, FindText
RETURN
' ------------------------------------------------------------------------------
Resize:
    FOR i% = 20 TO 22
        WIDTH i%, (WIDTH(0)-100)
        HEIGHT i%, (HEIGHT(0)-60)
    NEXT i%
RETURN
' ------------------------------------------------------------------------------
Bigger:
    FontSize%=FontSize% + 1
    IF FontSize% > 16 THEN FontSize% = 16 : RETURN
    FOR i% = 20 TO 22
        FONT_SIZE i%, FontSize%
    NEXT i%
    HIDE MemoInUse% : SHOW MemoInUse%
RETURN
' ------------------------------------------------------------------------------
Smaller:
    FontSize%=FontSize% - 1
    IF FontSize% < 8 THEN FontSize% = 8 : RETURN
    FOR i% = 20 TO 22
        FONT_SIZE i%, FontSize%
    NEXT i%
    HIDE MemoInUse% : SHOW MemoInUse%
RETURN
' ------------------------------------------------------------------------------
SUB Mask()
    WIDTH 0, 1025
        HEIGHT 0, 727
        LEFT 0,(SCREEN_X-WIDTH(0))/2
        TOP 0,(SCREEN_Y-HEIGHT(0))/2
        COLOR 0, 180,180,180
    BUTTON 1
        WIDTH 1, 100
        HEIGHT 1, 25
        LEFT 1,13
        TOP 1,10
        CAPTION 1, "&Open"
    BUTTON 2
        WIDTH 2, 100
        HEIGHT 2, 25
        LEFT 2,13
        TOP 2, 650
        CAPTION 2, "&Quit"
    BUTTON 3
        WIDTH 3, 100
        HEIGHT 3, 25
        LEFT 3,13
        TOP 3, 610
        CAPTION 3, "&About"
    CREATE_HIDE
    BUTTON 4
        WIDTH 4, 100
        HEIGHT 4, 25
        LEFT 4,13
        TOP 4,530    
        CAPTION 4, "&Smaller"  
    BUTTON 5
        WIDTH 5, 100
        HEIGHT 5, 25
        LEFT 5,13
        TOP 5,570    
        CAPTION 5, "&Bigger"  
    EDIT 6
        WIDTH 6, 100
        HEIGHT 6, 25
        LEFT 6,13
        TOP 6,470    
        TEXT 6, "  >> Search >>"  
    for i% = 1 to 6 : font_bold i% : next i%
    FOR i%= 20 TO 22
        LIST i%
        LEFT i%, 125
        TOP i%,10
        WIDTH i%, 870
        HEIGHT i%, 666
        FONT_NAME i%,"Courier New"
        FONT_SIZE i%,10
    NEXT i%
    SHOW 20
    TextAbout()
    MessageBox()
END_SUB
' ------------------------------------------------------------------------------
SUB MessageBox()
    PANEL 100
        WIDTH 100,300
        HEIGHT 100,200
        FONT_NAME 100,"Arial"
        FONT_SIZE 100,14
    COMMAND_TARGET_IS 100
    ALPHA 101
        TOP 101, 60
        LEFT 101, 100
        CAPTION 101, "Please wait"
    ALPHA 102
        TOP 102, 110
        LEFT 102, 60
        CAPTION 102, "Analysis in progress..."
    COMMAND_TARGET_IS 0
    SHOW 101
    SHOW 102
END_SUB
' ------------------------------------------------------------------------------
SUB WaitingMessage()
    TOP 100, (HEIGHT_CLIENT(0)-200)/2
    LEFT 100, (WIDTH_CLIENT(0)-300)/2
    SHOW 100
END_SUB
' ------------------------------------------------------------------------------
SUB TextAbout()
    ITEM_ADD 22,""
    b$="                        PANORAMIC SEARCH"
    ITEM_ADD 22, b$
    b$="           MARC37 - November 2017 - Panoramic v0.9.28.i12"
    ITEM_ADD 22, b$
    b$="  http://panoramic-language.pagesperso-orange.fr/French/index.html"
    ITEM_ADD 22, b$
    b$="                 http://panoramic.top-forum.net"
    ITEM_ADD 22, b$
END_SUB
' ------------------------------------------------------------------------------
Quit:
    TERMINATE
RETURN
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Recherche d'une expression dans un source Empty
MessageSujet: Re: Recherche d'une expression dans un source   Recherche d'une expression dans un source EmptyDim 19 Nov 2017 - 1:39

Salut Marc.
J’ai testé et c’est bon.
Merci pour le partage.

Comme je suis de l’ancienne génération de l’époque de feu DOS,  j’aimerais bien signaler la présence de deux commandes que l’on peut lancer à partir de l’invite de commandes et qui offrent une très grande souplesse d’emploi.

FIND et FINDSTR:


Voici le résultat de ton code et de la commande FIND (exécutée en ligne de commandes) sur le même fichier : Le résultat est identique.

Remarque : la chaîne recherchée est "xmax" dans le même fichier.

Spoiler:
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Pedro

Pedro


Nombre de messages : 1594
Date d'inscription : 19/01/2014

Recherche d'une expression dans un source Empty
MessageSujet: Recherche d'une expression dans un source.   Recherche d'une expression dans un source EmptyDim 19 Nov 2017 - 8:18

Bonjour.

Pour info, Klaus nous a concocté une fonction similaire, que j'utilise abondamment:


res%=dll_call6("SearchStringInTextFile",adr(fic$),adr(crit$),LineNumbers%,AtStartOnly%,OutType%,OutHandle%)

LineNumbers: 0=pas de numéros de ligne <>0=numéros de ligne
AtStartOnly: 0=dans toute la ligne <>0=au début de la ligne uniquement
OutType: chercher le critère entier: 0=clipboard 1=Memo 2=Combo 3=List
chercher tous les mots séparément: 10=clipboard 11=Memo 12=Combo 13=List sans signaler les mots
chercher tous les mots séparément: 20=clipboard 21=Memo 22=Combo 23=List en signalant les mots
OutHandle%: ignoré si OutType%=0, ou handle de l'objet sinon
Si OutType%=2, 12 ou 22: les résultats sont ajoutés au contenu existant de la combo.

Revenir en haut Aller en bas
Minibug

Minibug


Nombre de messages : 4570
Age : 58
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

Recherche d'une expression dans un source Empty
MessageSujet: Re: Recherche d'une expression dans un source   Recherche d'une expression dans un source EmptyDim 19 Nov 2017 - 11:28

Belle réalisation Marc 37 ! cheers

Comme quoi même en 100% Panoramic, on peut faire des chose très intéressante...
J'ai testé sur plus de 5000 lignes et c'est bluffant même avec un résultat sur de nombreuses lignes.

Bravo continu comme ça... Wink

Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 70
Localisation : 83 Var
Date d'inscription : 07/05/2009

Recherche d'une expression dans un source Empty
MessageSujet: Re: Recherche d'une expression dans un source   Recherche d'une expression dans un source EmptyDim 19 Nov 2017 - 14:16

Je viens de tester et ça marche cheers

Bravo Marc37, tu es entrain de nous concocter, sinon un déboguer, au moins un assistant au débogage.

Très utile...

A+
Revenir en haut Aller en bas
Marc

Marc


Nombre de messages : 2466
Age : 63
Localisation : TOURS (37)
Date d'inscription : 17/03/2014

Recherche d'une expression dans un source Empty
MessageSujet: Re: Recherche d'une expression dans un source   Recherche d'une expression dans un source EmptyLun 20 Nov 2017 - 11:08


Merci à tous pour vos retours.

@Papydall :
Merci du rappel !
Eh oui, même sous W10, les commandes DOS survivent !

@Pedro:
Merci aussi pour le rappel de la DDL de Klaus qui a implémenté entre autres, de puissantes et rapides fonctions de recherche.

Merci pour vos tests, je continue pour le plaisir de programmer, même si ça existe déjà... Le plaisir de faire soi-même !

Bonne journée à tous !
Revenir en haut Aller en bas
Contenu sponsorisé





Recherche d'une expression dans un source Empty
MessageSujet: Re: Recherche d'une expression dans un source   Recherche d'une expression dans un source Empty

Revenir en haut Aller en bas
 
Recherche d'une expression dans un source
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Lancer un source Panoramc dans Panoramic_Editor
» Mémoriser le dossier du source dans un onglet de l'éditeur
» Recherche d'une chaîne de caractères dans une arborescence
» Recherche d'un item dans un fichier.
» Recherche dans le forum Panoramic

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: