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
» Bataille navale SM
Problème avec la commande 'sort'. Emptypar jjn4 Aujourd'hui à 17:39

» Une calculatrice en une ligne de programme
Problème avec la commande 'sort'. Emptypar jean_debord Aujourd'hui à 8:01

» Gestion d'un système client-serveur.
Problème avec la commande 'sort'. Emptypar Pedro Hier à 19:31

» Les maths du crocodile
Problème avec la commande 'sort'. Emptypar jean_debord Hier à 10:37

» Naissance de Crocodile Basic
Problème avec la commande 'sort'. Emptypar jean_debord Hier à 8:45

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Problème avec la commande 'sort'. Emptypar Froggy One Mer 24 Avr 2024 - 18:38

» Dessine-moi une galaxie
Problème avec la commande 'sort'. Emptypar jjn4 Lun 22 Avr 2024 - 13:47

» Erreur END_SUB
Problème avec la commande 'sort'. Emptypar jjn4 Lun 22 Avr 2024 - 13:43

» Bug sur DIM_LOCAL ?
Problème avec la commande 'sort'. Emptypar papydall Dim 21 Avr 2024 - 23:30

» Form
Problème avec la commande 'sort'. Emptypar leclode Dim 21 Avr 2024 - 18:09

» trop de fichiers en cours
Problème avec la commande 'sort'. Emptypar Marc Dim 21 Avr 2024 - 2:41

» 2D_fill_color(résolu)
Problème avec la commande 'sort'. Emptypar leclode Sam 20 Avr 2024 - 8:32

» Consommation gaz électricité
Problème avec la commande 'sort'. Emptypar leclode Mer 17 Avr 2024 - 11:07

» on_key_down (résolu)
Problème avec la commande 'sort'. Emptypar leclode Mar 16 Avr 2024 - 11:01

» Sous-programme(résolu)
Problème avec la commande 'sort'. Emptypar jjn4 Jeu 4 Avr 2024 - 14:42

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Avril 2024
LunMarMerJeuVenSamDim
1234567
891011121314
15161718192021
22232425262728
2930     
CalendrierCalendrier
-40%
Le deal à ne pas rater :
-40% sur le Pack Gaming Mario PDP Manette filaire + Casque filaire ...
29.99 € 49.99 €
Voir le deal

 

 Problème avec la commande 'sort'.

Aller en bas 
4 participants
AuteurMessage
Pedro

Pedro


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

Problème avec la commande 'sort'. Empty
MessageSujet: Problème avec la commande 'sort'.   Problème avec la commande 'sort'. EmptyJeu 10 Mar 2016 - 8:21

Bonjour.

Je viens de découvrir un problème avec la commande 'sort'.
Lorsque j'utilise la commande 'sort_on', le nombre d'enregistrements de la seconde liste créée est inférieur à la 1ère liste !!
Alors qu'il devrait être strictement égal.

Par contre, si je remplace cette commande par 'sort' en fin de code, tout fonctionne parfaitement.

Jack pourrait-il m'éclairer sur ce problème ?

Code:
dim k%, a$, y%

dlist 997
' sort_on 997

dlist 4
file_load 4,"dico_français_anglais.txt"

' manger [sens: se nourrir de] (v) = essen
for k%=1 to count(4)
    a$=item_read$(4,k%)
    if a$="ZZZ" then exit_for
    if mod(k%,1000)=0 then caption 0,"Création du dictionnaire anglais->français, mot n° "+str$(k%)+"/"+str$(count(4))+"."
    y%=instr(a$,"=")
    item_add 997,trim$(right_pos$(a$,y%+1))+" = "+trim$(left$(a$,y%-1))
next k%
item_add 997,"ZZZ"
sort 997
file_save 997,"dico_anglais_français.txt"

message str$(count(4))+":"+str$(count(997))

delete 4
delete 997
message ""
Revenir en haut Aller en bas
JL35




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

Problème avec la commande 'sort'. Empty
MessageSujet: Re: Problème avec la commande 'sort'.   Problème avec la commande 'sort'. EmptyJeu 10 Mar 2016 - 21:28

Bon, d'accord, ça s'adresse à Jack.
Mais c'est curieux, tu dis qu'il manque un élément dans le second Dlist alors qu'au contraire tu en ajoutes un:
( item_add 997,"ZZZ" ) avant de le trier ?
Il devrait y en avoir un de trop, ou alors il en manque deux...

(entre parenthèses, j'ai fait l'essai du Sort et du Sort_On pour exactement le même résultat).

Autant pour moi, j'ai parlé trop vite, je vois que tu sautes le ZZZ du Dlist d'origine (4) avant de le rajouter dans le Dlist de destination (997) donc ça s'équilibre. Ceci dit chez moi ça marche, avec différents fichiers texte de longueurs variables, ça dépend peut-être chez toi du contenu du fichier traité, un élément perturbateur...

PS effectivement, je fais l'essai avec un fichier dico_francais_anglais.txt (sans doute le même que toi, ou une version plus ancienne),
- avec le SORT: 102400 -> 102400
- avec le SORT_ON: 102400 -> 102386, il en manque donc 14...
Reste à aller à la pêche pour savoir quels sont ceux qui manquent...
Revenir en haut Aller en bas
Klaus

Klaus


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

Problème avec la commande 'sort'. Empty
MessageSujet: Re: Problème avec la commande 'sort'.   Problème avec la commande 'sort'. EmptyJeu 10 Mar 2016 - 22:23

Utilise Notepad++ avec sa fonction de comparaison de fichiers...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
JL35




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

Problème avec la commande 'sort'. Empty
MessageSujet: Re: Problème avec la commande 'sort'.   Problème avec la commande 'sort'. EmptyJeu 10 Mar 2016 - 22:50

On peut aussi faire comme ceci pour trouver la ligne à partir de laquelle ça ne marche plus:
(en fait une recopie du 1er Dlist tel quel dans le second sans aucun traitement avec le Sort_On, et on s'aperçoit qu'il manque des éléments en sortie):
Code:
dim k%,a$,b$,ap$,bp$,c$
dlist 4
dlist 997
sort_on 997

file_load 4,"C:\Textes\dico_français_anglais.txt"
sort 4
print time$+"   4 : "+str$(count(4))
caption 0,"Création du dictionnaire anglais->français, "+str$(count(4))+" éléments."
for k%=1 to count(4)
    a$=item_read$(4,k%)
    if a$="ZZZ" then exit_for
    item_add 997,a$
next k%
item_add 997,"ZZZ"
print time$+" 997 : "+str$(count(997))

FOR k% = 1 TO COUNT(4)
    a$ = ITEM_READ$(4,k%): b$ = ITEM_READ$(997,k%)
    IF a$ <> b$
        c$ = "Ligne: "+str$(k%-1)+chr$(10)+"Dlist  4: "+ap$+chr$(10)+"Dlist 997: "+bp$
        c$=c$+chr$(10)+chr$(10)+"Ligne: "+str$(k%)+chr$(10)+"Dlist  4: "+a$+chr$(10)+"Dlist 997: "+b$
        MESSAGE c$
        EXIT_FOR
    END_IF
    ap$ = a$: bp$ = b$
NEXT k%
END
et j'obtiens à la ligne 7666:
Problème avec la commande 'sort'. Resul10

Et, du coup, je m'aperçois que dans le fichier source certaines lignes consécutives sont identiques (voir l'image ci-dessus) !
est-ce que c'est celles-ci qui ne sont pas prises en compte par le Sort_On ???
J'ai dans mon fichier source:
Code:
art et essai (n as adj) = art-house (ligne 7665)
art et essai (n as adj) = art-house (7666)
art et essai (n as adj) = art-house (7667
Art et essai (n as adj) = art-house (7668)
Art et essai (n as adj) = art-house (7669)


Dernière édition par JL35 le Jeu 10 Mar 2016 - 23:03, édité 1 fois
Revenir en haut Aller en bas
Klaus

Klaus


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

Problème avec la commande 'sort'. Empty
MessageSujet: Re: Problème avec la commande 'sort'.   Problème avec la commande 'sort'. EmptyJeu 10 Mar 2016 - 23:02

Citation :
sans aucun traitement avec le Sort_On
Si... tu as un SORT_ON sur l'objet 997.

Mais tu as certainement raison de pointer des doublons qui sautent dans le cas de SORT_ON.

EDIT

Exact ! La preuve:
Code:
dlist 1 : sort_on 1
item_add 1,"test"
item_add 1,"test"
message "count(1)="+str$(count(1))
end

Le doublon est tout simplement ignoré, dans message d'erreur.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
JL35




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

Problème avec la commande 'sort'. Empty
MessageSujet: Re: Problème avec la commande 'sort'.   Problème avec la commande 'sort'. EmptyJeu 10 Mar 2016 - 23:05

Je voulais dire 'sans aucun traitement' de la ligne lue (comme fait Pedro qui inverse les deux parties), mais avec le Sort_On, de façon à reconstituer un Dlist identique au Dlist source, pour pouvoir les comparer.

On s'est croisés Klaus, mais c'est sûrement ça, donc les deux traitements sont différents (Sort et Sort_On), si le Sort_On élimine les doublons.
Ce qui est sans doute un avantage, mais il faut le savoir.


Dernière édition par JL35 le Jeu 10 Mar 2016 - 23:08, édité 1 fois
Revenir en haut Aller en bas
Klaus

Klaus


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

Problème avec la commande 'sort'. Empty
MessageSujet: Re: Problème avec la commande 'sort'.   Problème avec la commande 'sort'. EmptyJeu 10 Mar 2016 - 23:07

D'accord. Tu as vu le petit code de démo ? Il y a un bug dans la gestion des DLIST. Il faudrait qu'il y ait une erreur trappable d'exécution, ou alors que le doublon se mette à la suite.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
JL35




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

Problème avec la commande 'sort'. Empty
MessageSujet: Re: Problème avec la commande 'sort'.   Problème avec la commande 'sort'. EmptyJeu 10 Mar 2016 - 23:14

On peut considérer ça comme un bug (le résultat devrait être de taille identique à l'origine), ou comme un avantage, si on l'utilise en connaissance de cause.
Revenir en haut Aller en bas
papydall

papydall


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

Problème avec la commande 'sort'. Empty
MessageSujet: Re: Problème avec la commande 'sort'.   Problème avec la commande 'sort'. EmptyVen 11 Mar 2016 - 0:02

Code:

dim i
font_bold 0

dlist 1 : sort_on 1
item_add 1,"test"
item_add 1,"test"
item_add 1,"salut"
item_add 1,"salut"
item_add 1,"test"

list 2 :  sort_on 2
item_add 2,"test"
item_add 2,"test"
item_add 2,"salut"
item_add 2,"salut"
item_add 2,"test"

print_locate 200,10 : print "Les articles de DLIST"
for i = 1 to count(1)
    print_locate 200,10+20*i : print item_read$(1,i)
next i

print_locate 200,100 : print "Les articles de LIST"
for i = 1 to count(2)
    print_locate 200,100+20*i : print item_read$(2,i)
next i

print : print :print "SORT_ON élimine les doublons dans DLIST"
print "et les conserve dans LIST"

Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Contenu sponsorisé





Problème avec la commande 'sort'. Empty
MessageSujet: Re: Problème avec la commande 'sort'.   Problème avec la commande 'sort'. Empty

Revenir en haut Aller en bas
 
Problème avec la commande 'sort'.
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» bug combo/list avec SORT + hide/create_hide
» Problème avec la commande RemoveStringBetweenDelimiters.
» Problème avec la commande rnd().
» Bug avec la commande 3d_Text x,a$
» Problème avec la commande 'file_writeln'.

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Un problème avec PANORAMIC?-
Sauter vers: