OVH Cloud OVH Cloud

Quel caractère saisir ...

8 réponses
Avatar
Georges Peyre
Bonjour,
Problème de débutant ...
Un champ de colonne de table es défini en Texte avec caractère
Majuscule au début

Quel caractère ( si possible invisible ) ajouter devant un mot pour que
ce nouveau mot devienne toujours plus grand que la lettre majuscule Z
et donc soit toujours en tête ou en fin après tri de la colonne.

Exemples de résultats du tri
Waaaaa
Zaaaaa
?TOTAL

ou

?TOTAL
Zaaaaa
Waaaaa

Merci d'avance

--
Elle est pas belle la vie ?

8 réponses

Avatar
jacques trepp
Georges Peyre a écrit :
Bonjour,
Problème de débutant ...
Un champ de colonne de table es défini en Texte avec caractère Majuscule
au début

Quel caractère ( si possible invisible ) ajouter devant un mot pour que
ce nouveau mot devienne toujours plus grand que la lettre majuscule Z et
donc soit toujours en tête ou en fin après tri de la colonne.

Exemples de résultats du tri
Waaaaa
Zaaaaa
?TOTAL

ou

?TOTAL
Zaaaaa
Waaaaa

Merci d'avance



un caract(160) peut-être ?
Avatar
Georges Peyre
Bonjour Jacques

jacques trepp vient de nous annoncer :



un caract(160) peut-être ?


Justement c'est ce qui me pose un problème de compréhension sur le tri
de colonnes :
si j'ajoute un caract(160) devant le mot TOTAL par exemple, le
caractère généré est invisible et après tri descendant le mot " TOTAL"
est placé devant les lignes commençant par la lettre A et non devant
les mots commençant par la lettre Z.

Ce qui me surprend le plus c'est que le résultat du tri obtenu par le
clic sur le tri de ma colonne n'est pas identique à celui du tri des
caractères ASCII et ANSI de l'exemple Windev qui permet d'afficher la
table comparative des caractères en Décimal/ASCII et ANSI

Si j'utilise caract(126) le caractère affiché est ~ en ANSI ou en ASCII

Dans la table des caractères, les tris des colonnes ASCII et ANSI
placent bien ce caractère comme plus grand que les chiffres, suivis des
caractères alphabétiques majuscules, suivi des caractères alphabétiques
minuscules.

Par contre si je constitue le mot ~TOTAL dans la colonne de ma table,
après tri de la colonne, cette ligne est placée devant un mot
commençant par la lettre A et non derriere un mot commençant par la
lettre Z

Pourquoi ce résultat de tri ?

--
Elle est pas belle la vie ?
Avatar
jacques trepp
Georges Peyre a écrit :
Bonjour Jacques

jacques trepp vient de nous annoncer :




un caract(160) peut-être ?



Justement c'est ce qui me pose un problème de compréhension sur le tri
de colonnes :
si j'ajoute un caract(160) devant le mot TOTAL par exemple, le caractère
généré est invisible et après tri descendant le mot " TOTAL" est placé
devant les lignes commençant par la lettre A et non devant les mots
commençant par la lettre Z.

Ce qui me surprend le plus c'est que le résultat du tri obtenu par le
clic sur le tri de ma colonne n'est pas identique à celui du tri des
caractères ASCII et ANSI de l'exemple Windev qui permet d'afficher la
table comparative des caractères en Décimal/ASCII et ANSI

Si j'utilise caract(126) le caractère affiché est ~ en ANSI ou en ASCII

Dans la table des caractères, les tris des colonnes ASCII et ANSI
placent bien ce caractère comme plus grand que les chiffres, suivis des
caractères alphabétiques majuscules, suivi des caractères alphabétiques
minuscules.

Par contre si je constitue le mot ~TOTAL dans la colonne de ma table,
après tri de la colonne, cette ligne est placée devant un mot commençant
par la lettre A et non derriere un mot commençant par la lettre Z

Pourquoi ce résultat de tri ?



plus que bizarre, en effet. on pourrait éventuellement admettre que
caract(160) soit assimilé à un espace, mais pas le caract(126)
:(
Avatar
Romain PETIT
jacques trepp avait énoncé :

Pourquoi ce résultat de tri ?





Parce que l'éditeur a sa propre table de tri (qui n'est pas
documentée), pour tenir compte des caractères accentués et autres.
Voici la table (obtenu empiriquement) :

9 <TAB>
0 <NUL>
1 <SOH>
2 <STX>
3 <ETX>
4 <EOT>
5 <ENQ>
6 <ACK>
7 <BELL>
8 <BS>
14 <SO>
15 <SI>
16 <DLE>
17 <DC1>
18 <DC2>
19 <DC3>
20 <DC4>
21 <NAK>
22 <SYN>
23 <ETB>
24 <CAN>
25 <EM>
26 <SUB>
27 <ESC>
28 <FS>
29 <GS>
30 <RS>
31 <US>
127 <DEL>
129 <?>
141 <?>
143 <?>
144 <?>
157 <?>
39 '
45 -
173 ­
150 -
151 -
32 <espace>
160 <espace insécable>
10 <LF>
11 <VT>
12 <FF>
13 <CR>
33 !
34 "
35 #
36 $
37 %
38 &
40 (
41 )
42 *
44 ,
46 .
47 /
58 :
59 ;
63 ?
64 @
91 [
92
93 ]
136 ?
94 ^
95 _
96 `
123 {
124 |
125 }
126 ~
161 ¡
166 ?
168 ?
175 ¯
180 ?
184 ?
191 ¿
152 ?
145 ?
146 ?
130 ?
147 ?
148 ?
132 ?
139 ?
155 ?
43 +
60 <
61 62 >
177 ±
171 «
187 »
215 ×
247 ÷
162 ¢
163 £
164 ¤
165 ¥
167 §
169 ©
172 ¬
174 ®
176 °
181 µ
182 ¶
183 ·
134 ?
135 ?
149 ?
133 ?
137 ?
128 ¤
48 0
188 ?
189 ?
190 ?
49 1
185 ¹
50 2
178 ²
51 3
179 ³
52 4
53 5
54 6
55 7
56 8
57 9
228 ä
195 Ã
194 Â
229 å
226 â
227 ã
197 Å
225 á
224 à
193 Á
192 À
196 Ä
65 A
97 a
170 ª
198 Æ
230 æ
98 b
66 B
199 Ç
231 ç
99 c
67 C
240 ð
208 Ð
100 d
68 D
203 Ë
202 Ê
69 E
201 É
101 e
235 ë
234 ê
233 é
232 è
200 È
70 F
131 ?
102 f
71 G
103 g
72 H
104 h
207 Ï
206 Î
204 Ì
236 ì
238 î
239 ï
105 i
205 Í
73 I
237 í
106 j
74 J
75 K
107 k
108 l
76 L
109 m
77 M
78 N
209 Ñ
110 n
241 ñ
214 Ö
216 Ø
242 ò
245 õ
213 Õ
210 Ò
211 Ó
212 Ô
243 ó
244 ô
248 ø
79 O
246 ö
111 o
186 º
140 ¼
156 ½
80 P
112 p
113 q
81 Q
82 R
114 r
138 ¦
83 S
154 ¨
115 s
223 ß
84 T
116 t
254 þ
222 Þ
153 ?
218 Ú
220 Ü
117 u
252 ü
251 û
250 ú
249 ù
217 Ù
85 U
219 Û
118 v
86 V
87 W
119 w
120 x
88 X
253 ý
221 Ý
89 Y
159 ¾
121 y
255 ÿ
158 ¸
90 Z
142 ´
122 z

--
Romain PETIT
http://cerbermail.com/?O16kfXOFcq
(cliquez sur le lien ci-dessus pour me contacter en privé)
Avatar
Romain PETIT
jacques trepp avait énoncé :

Pourquoi ce résultat de tri ?





Parce que l'éditeur a sa propre table de tri (qui n'est pas
documentée), pour tenir compte des caractères accentués et autres.
Voici la table (obtenue empiriquement) :

9 <TAB>
0 <NUL>
1 <SOH>
2 <STX>
3 <ETX>
4 <EOT>
5 <ENQ>
6 <ACK>
7 <BELL>
8 <BS>
14 <SO>
15 <SI>
16 <DLE>
17 <DC1>
18 <DC2>
19 <DC3>
20 <DC4>
21 <NAK>
22 <SYN>
23 <ETB>
24 <CAN>
25 <EM>
26 <SUB>
27 <ESC>
28 <FS>
29 <GS>
30 <RS>
31 <US>
127 <DEL>
129 <?>
141 <?>
143 <?>
144 <?>
157 <?>
39 '
45 -
173 ­
150 -
151 -
32 <espace>
160 <espace insécable>
10 <LF>
11 <VT>
12 <FF>
13 <CR>
33 !
34 "
35 #
36 $
37 %
38 &
40 (
41 )
42 *
44 ,
46 .
47 /
58 :
59 ;
63 ?
64 @
91 [
92
93 ]
136 ?
94 ^
95 _
96 `
123 {
124 |
125 }
126 ~
161 ¡
166 ?
168 ?
175 ¯
180 ?
184 ?
191 ¿
152 ?
145 ?
146 ?
130 ?
147 ?
148 ?
132 ?
139 ?
155 ?
43 +
60 <
61 62 >
177 ±
171 «
187 »
215 ×
247 ÷
162 ¢
163 £
164 ¤
165 ¥
167 §
169 ©
172 ¬
174 ®
176 °
181 µ
182 ¶
183 ·
134 ?
135 ?
149 ?
133 ?
137 ?
128 ¤
48 0
188 ?
189 ?
190 ?
49 1
185 ¹
50 2
178 ²
51 3
179 ³
52 4
53 5
54 6
55 7
56 8
57 9
228 ä
195 Ã
194 Â
229 å
226 â
227 ã
197 Å
225 á
224 à
193 Á
192 À
196 Ä
65 A
97 a
170 ª
198 Æ
230 æ
98 b
66 B
199 Ç
231 ç
99 c
67 C
240 ð
208 Ð
100 d
68 D
203 Ë
202 Ê
69 E
201 É
101 e
235 ë
234 ê
233 é
232 è
200 È
70 F
131 ?
102 f
71 G
103 g
72 H
104 h
207 Ï
206 Î
204 Ì
236 ì
238 î
239 ï
105 i
205 Í
73 I
237 í
106 j
74 J
75 K
107 k
108 l
76 L
109 m
77 M
78 N
209 Ñ
110 n
241 ñ
214 Ö
216 Ø
242 ò
245 õ
213 Õ
210 Ò
211 Ó
212 Ô
243 ó
244 ô
248 ø
79 O
246 ö
111 o
186 º
140 ¼
156 ½
80 P
112 p
113 q
81 Q
82 R
114 r
138 ¦
83 S
154 ¨
115 s
223 ß
84 T
116 t
254 þ
222 Þ
153 ?
218 Ú
220 Ü
117 u
252 ü
251 û
250 ú
249 ù
217 Ù
85 U
219 Û
118 v
86 V
87 W
119 w
120 x
88 X
253 ý
221 Ý
89 Y
159 ¾
121 y
255 ÿ
158 ¸
90 Z
142 ´
122 z

--
Romain PETIT
http://cerbermail.com/?O16kfXOFcq
(cliquez sur le lien ci-dessus pour me contacter en privé)
Avatar
Georges Peyre
Bonjour Romain,

Romain PETIT a formulé ce mercredi :
Parce que l'éditeur a sa propre table de tri (qui n'est pas documentée), pour
tenir compte des caractères accentués et autres



Celà explique mon problème mais ne le résout pas.

Celà marche si je j'ajoute caract(122) mais un Z en tête du titre de
colonne n'est pas très élégant

A ton avis existe t-il un moyen pour changer cet état de choses.

Merci pour ton aide

--
Elle est pas belle la vie ?
Avatar
Romain PETIT
Georges Peyre avait énoncé :
A ton avis existe t-il un moyen pour changer cet état de choses.



Ajouter une colonne invisible dans laquelle tu définiras ton propre
ordre de tri en ajoutant un caractère et shunter le tri de ta table
visible par celui de la table invisible.
Même principe que pour effectuer un tri multiple en cliquant sur une
seule colonne.


Exemple :

sRang est une chaine
sRang="0"
TableAjoute(MaTable, "toto"+TAB+sRang+"toto")
TableAjoute(MaTable, "zozo"+TAB+sRang+"zoto")
//le suivant sera toujours en dernier/premier
sRang="1"
TableAjoute(MaTable, "le dernier ou le premier"+TAB+sRang+"le dernier
ou le premier")

Il faut ensuite détecter l'évenement de clic sur les en-têtes de
colonnes qui lancent le tri pour le remplacer par ton tri perso.


***** Déclarations globales de la fenêtre
//Evenement pour détecter le clic sur en-tête de colonne
gf_eEvClicTable est un entier
gf_bTri est un booléen
gf_sNomTable est une chaîne = "MaTable"
gf_sNomColonneATrier est une chaîne = "sNomColonneATrier"
gf_sNomColonneInvisible est une chaîne = "sNomColonneInvisible"

***** Initialisation de la fenêtre
gf_eEvClicTable=Evénement("pl_ClicEnTeteTable", gf_sNomTable, 1529)

***** Fermeture de la fenêtre
SI gf_eEvClicTable<>0 ALORS FinEvénement(gf_eEvClicTable)

***** Procédure locale pl_ClicEnTeteTable
PROCEDURE pl_ClicEnTeteTable(sMess, wParam, lParam)
sNomTable est une chaîne = gf_sNomTable
sNomColonne est une chaîne = gf_sNomColonneATrier
sNomColonneInvisible est une chaîne = gf_sNomColonneInvisible
eRes est un entier = CurseurPos(cpClient)
eX est un entier
eX = PoidsFaible(eRes)-{sNomTable,indChamp}..X

sNomColCliquée est une chaîne
sNomColCliquée =TableEnumèreColonne(sNomTable,wParam)
// La colonne correspond-elle à celle à trier ?
SI sNomColCliquée=sNomColonne ALORS
//On ne prend pas en compte le clic si la loupe est présente
//(à environ 10 pixels)
SI eX < {sNomTable+"."+sNomColonne,indChamp}..Largeur-10 ALORS
SI gf_bTri ALORS
TableTrie(sNomTable,"+"+sNomColonneInvisible)
SINON
TableTrie(sNomTable,"-"+sNomColonneInvisible)
FIN
gf_bTri = PAS gf_bTri
// Le renvoyer 0 permet d'annuler
// le tri sur la colonne seule
RENVOYER 0
FIN
FIN

--
Romain PETIT
http://cerbermail.com/?O16kfXOFcq
(cliquez sur le lien ci-dessus pour me contacter en privé)
Avatar
Georges Peyre
Romain PETIT avait prétendu :
A ton avis existe t-il un moyen pour changer cet état de choses.



Ajouter une colonne invisible dans laquelle tu définiras ton propre ordre de
tri en ajoutant un caractère et shunter le tri de ta table visible par celui
de la table invisible.
Même principe que pour effectuer un tri multiple en cliquant sur une seule
colonne.



Merci infiniment Romain : c'est super !!!

--
Elle est pas belle la vie ?