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.
Demande d'une nouvelle fonction dans kgf. Emptypar Pedro Sam 23 Nov 2024 - 15:50

» Un autre pense-bête...
Demande d'une nouvelle fonction dans kgf. Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Demande d'une nouvelle fonction dans kgf. Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Demande d'une nouvelle fonction dans kgf. Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Demande d'une nouvelle fonction dans kgf. Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Demande d'une nouvelle fonction dans kgf. Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Demande d'une nouvelle fonction dans kgf. Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Demande d'une nouvelle fonction dans kgf. Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Demande d'une nouvelle fonction dans kgf. Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Demande d'une nouvelle fonction dans kgf. Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Demande d'une nouvelle fonction dans kgf. Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Demande d'une nouvelle fonction dans kgf. Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Demande d'une nouvelle fonction dans kgf. Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Demande d'une nouvelle fonction dans kgf. Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Demande d'une nouvelle fonction dans kgf. 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 :
Code promo Nike : -25% dès 50€ d’achats sur tout le site Nike
Voir le deal

 

 Demande d'une nouvelle fonction dans kgf.

Aller en bas 
2 participants
AuteurMessage
Pedro

Pedro


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

Demande d'une nouvelle fonction dans kgf. Empty
MessageSujet: Demande d'une nouvelle fonction dans kgf.   Demande d'une nouvelle fonction dans kgf. EmptyJeu 23 Nov 2017 - 13:12

Bonjour.

@Klaus.

J'aurais besoin d'une fonction qui rechercherait les items semblables dans un très grand fichier texte.
Je m'exlique:

Je possède un dictionnaire français-anglais, qui contient plus de 700.000 définitions, comme suit (exemple):

ta (adj poss) [qui est à toi] = your
ta (locution) = merci
ta (poss) [archaic or poetic] (adj) = sens annulé
ta (poss adj) [archaic or poetic] = sens annulé


La fonction devrait identifié tous les items du fichier, commençant par une chaîne de caractères donnée.

Exemple

La chaîne est égale à 'ta'.

La fonction identifie la 1ère occurrence correspondante, ici:
ta (adj poss) [qui est à toi] = your

Elle lit ensuite chaque item qui suit, et s'arrête au 1er item ne commençant pas par 'ta'.
Attention, à la lecture de chaque item, elle doit supprimer les sous-chaînes entre parenthèses et crochets, afin de bien réaliser la comparaison.

Dans l'exemple ci-dessus, elle devrait trouver 4 items.

La liste des items trouvé devra être enregistré dans un objet combo, ou autre.

Cette fonction est donc différente de la fonction SearchStringInTextFile.

Merci de ta réponse pour la faisablité.
Revenir en haut Aller en bas
Klaus

Klaus


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

Demande d'une nouvelle fonction dans kgf. Empty
MessageSujet: Re: Demande d'une nouvelle fonction dans kgf.   Demande d'une nouvelle fonction dans kgf. EmptyJeu 23 Nov 2017 - 14:57

Oui, c'est possible. Je vais clôner SearchStringInTextFile et en dériver la nouvelle fonction.

Et pourquoi n'utiliserais-tu pas la fonction:
Code:

res% = dll_call6("SearchStringInTextFile",adr(fic$),adr(crit$),LineNumbers%, AtStartOnly%, OutType%, handle(obj%))
en mettant 1 dans le paramètre AtStartOnly% (le 4ème paramètre). Cela devrait résoudre ton problème, non ?
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Pedro

Pedro


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

Demande d'une nouvelle fonction dans kgf. Empty
MessageSujet: Demande d'une nouvelle fonction dans kgf.   Demande d'une nouvelle fonction dans kgf. EmptyJeu 23 Nov 2017 - 15:35

Bonjour.

Merci d'avoir regardé Klaus.

En fait, la solution que tu préconises ne résouds pas le problème.
Cela est dû au fait que les items peuvent contenir des sous-chaînes entre parenthèses et crochets.

Dans l'exemple ci-dessus, la fonction devrait rechercher tous les items débutant par 'ta = ', après suppression de ces sous-chaînes justement.

Ce que ne réalise pas la fonction SearchStringInTextFile.
Revenir en haut Aller en bas
Klaus

Klaus


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

Demande d'une nouvelle fonction dans kgf. Empty
MessageSujet: Re: Demande d'une nouvelle fonction dans kgf.   Demande d'une nouvelle fonction dans kgf. EmptyJeu 23 Nov 2017 - 15:52

Et pourquoi ne cherches-tu pas simplement "ta ", avec juste un espace après "ta". Ca donne le même résultat, non ?
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Pedro

Pedro


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

Demande d'une nouvelle fonction dans kgf. Empty
MessageSujet: Demande d'une nouvelle fonction dans kgf.   Demande d'une nouvelle fonction dans kgf. EmptyJeu 23 Nov 2017 - 16:48

Bonjour.

@Klaus.

Ce serait trop simple.
Mais le dictionnaire comporte des milliers d'expressions commençant par 'ta' !!

Comme suit:

ta caméra n'est pas aussi bonne que la mienne (locution) (*) = your camera is not as excellent as my camera
ta carrière sera pénible. (locution) = your career will be difficult.
ta chambre doit toujours être en ordre (locution) (*) = your room must always be kept clean
ta chambre, c'est un vrai chantier [désordre] = your bedroom is a total shambles ou looks like a bomb's hit it


Et ce que je recherche à faire, c'est d'établir la liste des items correspond uniquement au pronom possessif 'ta'.
Revenir en haut Aller en bas
Klaus

Klaus


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

Demande d'une nouvelle fonction dans kgf. Empty
MessageSujet: Re: Demande d'une nouvelle fonction dans kgf.   Demande d'une nouvelle fonction dans kgf. EmptyJeu 23 Nov 2017 - 17:09

Et donc, le critère pourraît être "ta (", non ?
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Pedro

Pedro


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

Demande d'une nouvelle fonction dans kgf. Empty
MessageSujet: Demande d'une nouvelle fonction dans kgf.   Demande d'une nouvelle fonction dans kgf. EmptyJeu 23 Nov 2017 - 18:30

Bonjour.

Malheureusement, il n'est pas possible de connaître à l'avance le critère exact à rechercher.
Donc, retour au point de départ.
Revenir en haut Aller en bas
Klaus

Klaus


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

Demande d'une nouvelle fonction dans kgf. Empty
MessageSujet: Re: Demande d'une nouvelle fonction dans kgf.   Demande d'une nouvelle fonction dans kgf. EmptyJeu 23 Nov 2017 - 18:47

Donc, résumons:
Pour chaque ligne:
- j'élimine tout ce qui est entre (...), y compris ces parenthèses,
- j'élimine tout ce qui est entre [...], y compris ces parenthèses,
- je recompacte la ligne en éliminant les doubles espaces
- puis je vérifie si la ligne commence par le critère fourni suivi d'un "="

Est-ce exact ? Franchement, je ne vois pas la différence avec la recherche de "ta (". Peux-tu le donner un exemple plus parlant pour cela, stp ?
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Pedro

Pedro


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

Demande d'une nouvelle fonction dans kgf. Empty
MessageSujet: Demande d'une nouvelle fonction dans kgf.   Demande d'une nouvelle fonction dans kgf. EmptyJeu 23 Nov 2017 - 20:08

Bonsoir.

Oui, c'est exactement cela, tu as bien résumé ma requête.

Mon but est le suivant: traduire un texte de longueur quelconque en anglais, allemand ou espagnol.

Chacun des mots du texte est recherché individuellement dans les dictionnaires.

Mais on ne sait jamais si, dans un dictionnaire, le mot cherché est suivi d'un crochet, d'une parenthèse, ou d'un autre caractère .
Et voilà le problème !

La fonction SearchStringInTextFile fonctionne parfaitement, mais fournit des milliers de correspondances pour certains mots, alors que le dictionnaire n'indique que quelques traductions !!

Comme je te l'ai signalé plus haut, pour le mot 'ta'.

Il en est de même pour le mot 'je'.

je (devant voyelle et 'h' muet j' ) (pron) = I
je (me) fais des inhalations avec ce produit (locution) = I use this product as an inhalant
je (me) fais des inhalations avec ce produit [traitement] = I use this product as an inhalant
je (ne) rigole pas! [sens: plaisanter] (locution) = to it's no joke!


Pour ce mot simple, une seule traduction doit être prise en compte, alors que la fonction SearchStringInTextFile indique des milliers de lignes !!

On ne peut pas rechercher 'je(' car on ne sais pas quel caractère se trouve après 'je' dans le dico.

Merci de la suite.

Revenir en haut Aller en bas
Klaus

Klaus


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

Demande d'une nouvelle fonction dans kgf. Empty
MessageSujet: Re: Demande d'une nouvelle fonction dans kgf.   Demande d'une nouvelle fonction dans kgf. EmptyJeu 23 Nov 2017 - 21:20

Donc, en réalité, je dois chercher si, toutes parenthèses éliminées, le critère de rercherche est suivi uniquement du signe "=" (égal), puis du texte quelconque derrière.

Bon, je vais voir cela.
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

Demande d'une nouvelle fonction dans kgf. Empty
MessageSujet: Re: Demande d'une nouvelle fonction dans kgf.   Demande d'une nouvelle fonction dans kgf. EmptyJeu 23 Nov 2017 - 22:26

J'ai créé une fonction qui pourait résoudre cela. C'est une fonction dérivée de SearchStringInTextFile et elle s'appelle SpecialSearchStringInTextFile. Voici comment elle est appelée:
Code:
res% = dll_call5("SpecialSearchStringInTextFile",adr(fic$),adr(crit$),LineNumbers%,OutType%, handle(obj%))
Comme tu vois, elle garde les mêmes paramètres que la fonction d'origine, avec le paramètre AtStartOnly en moins. A part cela, elle s'utilise exactement de la même manière. Tu lui indiques le critère SANS l'espace à la fin, et SANS le signe "=" (égal). De façon interne, la fonction élimine tout ce qui est entre (...) et [...], ces parenthèses y compris, supprime les espaces doubles, puis cherche le critère indiqué suivi d'un espace puis du signe "=". Si cette combinaison est trouvée en position 1 (début de ligne), alors le résultat est signalé exactement comme dans la fonction d'origine, sinon la ligne est ignorée.

Tu peux télécharger KGF.dll sur mon site ou mon WebDav. La doc n'est pas encore à jour, et le numéro de version est pour le moment inchangée. J'aimerais que tu puisses faire un essai réel.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Pedro

Pedro


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

Demande d'une nouvelle fonction dans kgf. Empty
MessageSujet: Demande d'une nouvelle fonction dans kgf.   Demande d'une nouvelle fonction dans kgf. EmptyVen 24 Nov 2017 - 7:40

Bonjour.

@Klaus.

Je viens de tester la nouvelle fonction, avec la dernière version de kgf.dll, trouvée dans ta signature.
J'obtiens un message d'erreur:

Not correct arithmetic expression: error in function line11.

Aurais-je omis quelque chose dans le code ?

Code:
dim res%, fic$, crit$, l%, o%, obj%

dll_on "kgf"

fic$="dico_français_anglais.txt"
crit$="ta"
l%=1

combo 1

res%=dll_call5("SpecialSearchStringInTextFile",adr(fic$),adr(crit$),l%,2,handle(1))

Tu peux télécharger le dictionnaire complet français-anglais ici:

https://mon-partage.fr/f/rT6Hz79H/
Revenir en haut Aller en bas
Klaus

Klaus


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

Demande d'une nouvelle fonction dans kgf. Empty
MessageSujet: Re: Demande d'une nouvelle fonction dans kgf.   Demande d'une nouvelle fonction dans kgf. EmptyVen 24 Nov 2017 - 10:53

J'ai trouvé et corrigé. Tu peux recharger la DLL, et tu peux essayer avec cette version modifiée du code de démo:
Code:
dim res%, fic$, crit$, l%, o%, obj%

dll_on "kgf"

fic$="dico_français_anglais.txt"
crit$="ta"
l%=1

combo 1
combo 2 : left 2,200

res%=dll_call5("SpecialSearchStringInTextFile",adr(fic$),adr(crit$),l%,2,handle(1))
res%=dll_call6("SearchStringInTextFile",adr(fic$),adr(crit$),l%,1,2,handle(2))

end
La combo de gauche montre le résultat de la nouvelle fonction, et la combo de droite celui de l'ancienne fonction.

EDIT à 11:36:
J'ai fait de sorte que la fonction retourne la ligne d'origine, non la version "épurée" construite pour la comparaison. C'est certainement mieux ainsi...

EDIT à 12:20:
La doc a été complétée pour la fonction SearchStringInTextFile.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Pedro

Pedro


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

Demande d'une nouvelle fonction dans kgf. Empty
MessageSujet: Demande d'une nouvelle fonction dans kgf.   Demande d'une nouvelle fonction dans kgf. EmptyVen 24 Nov 2017 - 15:03

Bonjour.

@Klaus.

Cette nouvelle commande est tout simplement géniale.
Un grand merci Klaus pour cette nouveauté très appréciée.

J'ai réalisé un test avec le mot 'je'.

Résultats:
. avec la nouvelle commande: 0 sec.
. avec l'ancienne commande: 8 sec.

Le gain de temps est vraiment très appréciable, ce qui va me permettre de donner un véritable coup de fouet à mon module de traduction.

Code:
dim res%, d1$, d2$, fic$, crit$, l%, o%, obj%

dll_on "kgf"

fic$="dico_français_anglais.txt"
crit$="je"
l%=1

combo 1:width 1,500:font_size 1,12:font_bold 1
combo 2:left 2,600:width 2,500:font_size 2,12:font_bold 2

d1$=time$
res%=dll_call5("SpecialSearchStringInTextFile",adr(fic$),adr(crit$),l%,2,handle(1))
message d1$+":"+time$
d2$=time$
res%=dll_call6("SearchStringInTextFile",adr(fic$),adr(crit$),l%,1,2,handle(2))
message d2$+":"+time$
end
Revenir en haut Aller en bas
Klaus

Klaus


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

Demande d'une nouvelle fonction dans kgf. Empty
MessageSujet: Re: Demande d'une nouvelle fonction dans kgf.   Demande d'une nouvelle fonction dans kgf. EmptyVen 24 Nov 2017 - 17:41

Very Happy Very Happy Very Happy
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Contenu sponsorisé





Demande d'une nouvelle fonction dans kgf. Empty
MessageSujet: Re: Demande d'une nouvelle fonction dans kgf.   Demande d'une nouvelle fonction dans kgf. Empty

Revenir en haut Aller en bas
 
Demande d'une nouvelle fonction dans kgf.
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Demande d'une nouvelle fonction de KGF.
» KGF.dll - demandes ou suggestions de modifications ou ajouts
» Demande d'une nouvelle fonction de KGF.
» Demande de nouvelle fonction sur les chaînes de caractères.
» Demande de nouvelle commande.

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: