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 | 
 

 Problème avec StringList.

Aller en bas 
AuteurMessage
Pedro Alvarez

avatar

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

MessageSujet: Problème avec StringList.   Mer 10 Déc 2014 - 9:13

@Klaus.

Bonjour.

J'ai un gros problème avec l'objet StringList.

En effet, la ligne retournée est fausse !

Merci de voir.


Code:
dim egale$, element$, fichier$, numero_ligne%, res%, temporaire$
egale$=chr$(61)

dll_on "kgf.dll"

fichier$="dico_français_anglais.txt"

CreateLoadStringList(153,1,fichier$)

element$="manger"+egale$

temporaire$ = string$(255," ")
res%=dll_call3("SearchStringList",153,adr(element$),adr(temporaire$))
res%=abs(res%)

' Retourne 73754: devrait retourner zéro, car la ligne n'existe pas !
message "'"+element$+"' "+str$(res%)

if res%>1
  numero_ligne%=res%
  temporaire$ = string$(255," ")
  res%=dll_call3("ReadStringList",153,numero_ligne%,adr(temporaire$))

  ' Retourne "manges-en tant que tu veux (conj expression) = have as many"
  message "'"+trim$(temporaire$)+"'"
end_if

end

sub CreateLoadStringList(n%,mode%,file$)
    res%=dll_call2("CreateStringList",n%,mode%)
    if res%=0 then res%=dll_call2("LoadStringList",n%,adr(file$))
end_sub
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: Problème avec StringList.   Mer 10 Déc 2014 - 10:25

Où est ce fichier "dico_français_anglais.txt" ?
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: Problème avec StringList.   Mer 10 Déc 2014 - 11:36

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: Problème avec StringList.   Mer 10 Déc 2014 - 11:42

?????????
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: Problème avec StringList.   Mer 10 Déc 2014 - 11:45

@Klaus.

Je viens de le renommer 'dico.txt'.

J'espère que tu pourras le télécharger maintenant.

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: Problème avec StringList.   Mer 10 Déc 2014 - 11:53

Je l'ai eu, merci. Je vais voir ça.
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: Problème avec StringList.   Mer 10 Déc 2014 - 12:07

2 remarques, Pedro:

1. on peut avoir des StringList de 1 à 20, pas 153... C'est dit dans la doc. Mais je reconnais que ce n'est pas sécurisé dans le code, et je corrigerai cela. En tout cas, avsc 153, ça part complètement dans les choux...

2. tu ne tiens pas compte du code erreur que la fonction retourne. En fait, la fonction retourne une valeur négative et la doc indique:
Citation :
-ind% si liste triée et enregistrement exact inexistant: indice devant lequel il faut insérer
Mais tu écartes cette information avec
Code:
res%=abs(res%)
et du coup, tu penses que l'enregistrement existe...

2 conseils:

1. respecte les numéros des StringList de 1 à 20
2. vérifie bien le signe du code retour

De mon côté, je vais prochainement mettre en ligne une version de KGF.dll qui protège contre des numéros invalides de Stringlist.
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: Problème avec StringList.   Mer 10 Déc 2014 - 12:42

Dans le petit code que tu as posté, j'ai remplacé 153 par 13. Et j'obtiens toujours "-73754".

Donc, d'une part, cela indique (par la valeur négative) que le critère recherché n'existe pas. Et d'autre part, il indique devant quel ligne le critère devrait être inséré s'il doit être ajouté au fichier. Et cette information est correcte, car:
Citation :
73753 manger vite (v) = to bolt one's food (down)
73754 manges-en tant que tu veux (conj expression) = have as many
"manger=" s'insère bien entre les deux...
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: Problème avec StringList.   Mer 10 Déc 2014 - 13:32

@Klaus.

Bonjour.

Dans le code ci-dessous, la valeur retournée est négative (- 73709).

Alors que la ligne existe bien: manger (figuré) (vt) = to eat

Merci de m'éclairer, Klaus.

Faut-il que la ligne corresponde complètement à l'élément recherché ?

Code:
dim egale$, element$, espace$, fichier$, numero_ligne%, res%, temporaire$
egale$=chr$(61)
espace$=chr$(32)

dll_on "kgf.dll"

fichier$="dico_français_anglais.txt"

CreateLoadStringList(13,1,fichier$)

element$="manger"+espace$

temporaire$ = string$(255," ")
res%=dll_call3("SearchStringList",13,adr(element$),adr(temporaire$))

' Retourne 73754
message "'"+element$+"' "+str$(res%)

if res%>1
   numero_ligne%=res%
   temporaire$ = string$(255," ")
   res%=dll_call3("ReadStringList",13,numero_ligne%,adr(temporaire$))

   ' Retourne "manges-en tant que tu veux (conj expression) = have as many"
   message "'"+trim$(temporaire$)+"'"
end_if

end

sub CreateLoadStringList(n%,mode%,file$)
    res%=dll_call2("CreateStringList",n%,mode%)
    if res%=0 then res%=dll_call2("LoadStringList",n%,adr(file$))
end_sub
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: Problème avec StringList.   Mer 10 Déc 2014 - 14:23

Oui. Le code indique que le critère recherché exact n'existe pas (donc "manger" suivi d'un espace), et indique la ligne devant laquelle ce code devrait être inséré.

Il faut donc, en cas de valeur négative, tester si le début de la chaîne retournée est identique au critère recherché.

Regarde cette modification:
Code:
dim egale$, element$, espace$, fichier$, numero_ligne%, res%, temporaire$
egale$=chr$(61)
espace$=chr$(32)

dll_on "kgf.dll"

fichier$="dico_français_anglais.txt"

CreateLoadStringList(13,1,fichier$)

element$="manger"+espace$

temporaire$ = string$(255," ")
res%=dll_call3("SearchStringList",13,adr(element$),adr(temporaire$))

' Retourne 73754
temporaire$ = trim$(temporaire$)
message "debug: '"+element$+"' "+str$(res%)+"  '"+temporaire$+"'"
if res%<0
  if left$(temporaire$,len(element$))=element$ then res% = 0 - res%
end_if

if res%>1
   numero_ligne%=res%
   temporaire$ = string$(255," ")
   res%=dll_call3("ReadStringList",13,numero_ligne%,adr(temporaire$))

   ' Retourne "manges-en tant que tu veux (conj expression) = have as many"
   message "'"+trim$(temporaire$)+"'"
end_if

end

sub CreateLoadStringList(n%,mode%,file$)
    res%=dll_call2("CreateStringList",n%,mode%)
    if res%=0 then res%=dll_call2("LoadStringList",n%,adr(file$))
end_sub

Je pense que ça résoud ton problème.
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: Problème avec StringList.   Mer 10 Déc 2014 - 16:25

@Klaus.

OK, un grand merci Klaus.

Là, je comprends mieux.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Problème avec StringList.   

Revenir en haut Aller en bas
 
Problème avec StringList.
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [/résolu] problème avec java à l'instalation :-/
» Problème avec Java
» [Résolu] problème avec avira
» Problème avec décodeur Tv
» problème avec Outlook

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: