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
» Planétarium virtuel.
par Pedro Alvarez Aujourd'hui à 16:57

» Roues dentées
par jean_debord Aujourd'hui à 10:40

» Attention arnaque !
par mindstorm Jeu 19 Juil 2018 - 19:18

» Qui fait quoi ?
par silverman Mer 18 Juil 2018 - 15:21

» ITEM_SELECT N,L pour synedit
par silverman Mer 18 Juil 2018 - 15:20

» Boussole
par jean_debord Mer 18 Juil 2018 - 11:06

» Roue à n faces
par Marc Dim 15 Juil 2018 - 22:16

» Exemple d'une nouvelle version d'un GRID
par Jean Claude Ven 13 Juil 2018 - 10:32

» Une simple question
par Oscaribout Sam 7 Juil 2018 - 23:20

» BUG sur l'objet TAB
par Jack Sam 7 Juil 2018 - 21:12

» Monopoly moderne
par jjn4 Sam 7 Juil 2018 - 15:06

» Récapitulatif ludothèque panoramic jjn4
par jjn4 Ven 6 Juil 2018 - 17:41

» Lignes ondulées
par JL35 Ven 6 Juil 2018 - 17:39

» bug off_activate 0 : sans d'effet
par silverman Ven 6 Juil 2018 - 13:02

» Position des objets d'un conteneur dans FBPano et Panoramic
par Navigateur Ven 6 Juil 2018 - 12:59

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Juillet 2018
LunMarMerJeuVenSamDim
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
CalendrierCalendrier

Partagez | 
 

 Demande d'une nouvelle fonction dans kgf.

Aller en bas 
AuteurMessage
Pedro Alvarez

avatar

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

MessageSujet: Demande d'une nouvelle fonction dans kgf.   Jeu 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
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: Demande d'une nouvelle fonction dans kgf.   Jeu 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
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Pedro Alvarez

avatar

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

MessageSujet: Demande d'une nouvelle fonction dans kgf.   Jeu 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
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: Demande d'une nouvelle fonction dans kgf.   Jeu 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
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Pedro Alvarez

avatar

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

MessageSujet: Demande d'une nouvelle fonction dans kgf.   Jeu 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
Voir le profil de l'utilisateur
Klaus

avatar

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

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

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

avatar

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

MessageSujet: Demande d'une nouvelle fonction dans kgf.   Jeu 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
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: Demande d'une nouvelle fonction dans kgf.   Jeu 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
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Pedro Alvarez

avatar

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

MessageSujet: Demande d'une nouvelle fonction dans kgf.   Jeu 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
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: Demande d'une nouvelle fonction dans kgf.   Jeu 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
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

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

MessageSujet: Re: Demande d'une nouvelle fonction dans kgf.   Jeu 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
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Pedro Alvarez

avatar

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

MessageSujet: Demande d'une nouvelle fonction dans kgf.   Ven 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
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: Demande d'une nouvelle fonction dans kgf.   Ven 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
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Pedro Alvarez

avatar

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

MessageSujet: Demande d'une nouvelle fonction dans kgf.   Ven 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
Voir le profil de l'utilisateur
Klaus

avatar

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

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

Very Happy Very Happy Very Happy
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Contenu sponsorisé




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

Revenir en haut Aller en bas
 
Demande d'une nouvelle fonction dans kgf.
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» nouvelle dans the Blue Planet
» Nouvelle voiture pour Kit dans la suite de K2000
» [Annulée] Demande de description des catégories.
» [résolu]Nouvelle version: fichier .bat
» [Basil] Demande de mise en page

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: