Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > SAS > SAS Base
SAS Base Forum d'entraide sur SAS base : étape data, procédures non statistiques, procédures non graphiques, SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/09/2011, 16h06   #1
Membre éclairé
 
Homme
statisticien
Inscription : mai 2011
Messages : 212
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : statisticien
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : mai 2011
Messages : 212
Points : 319
Points : 319
Par défaut Proc FCMP SAS 9.2: fonction qui extrait la plus grande chaine de caractères consécutifs commune à 2 variables

Bonjour,

j'essaye de faire une fonction via la proc FCMP qui extrait la plus grande chaine de caractères consécutifs commune à deux variables (ici string1 et string2)

Tout semble marcher sauf la fonction index qui semble inopérante dans la proc fcmp , soit il y a une erreur quelque part et je ne la vois pas, soit je ne sais pas...

Voici le code

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
 
DATA a;
string1='LES MARCHES DE L OISE';
string2='MARCHES DE L OISE BP 60520';output;run;
 
proc print DATA=a;run;
 
proc fcmp outlib=sasuser.MyFuncs.ChrFuncs;
 
FUNCTION extr(string1$,string2$) $100;
match=-1;
ch='XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
pos=-1;
long=0;
l=length(string1);
do i = 1 TO L;
do j=1 TO L-i+1;
chaine=substr(string1,i,j);
match=INDEX(string2,chaine);
 
longueur=length(chaine);
put string1 string2 match i j chaine longueur;
IF (match>0 AND longueur>long) then pos=i;
IF (match>0 AND longueur>long) then ch=chaine;
IF (match>0 AND longueur>long) then long=j;
 
 
end;end;
RETURN(ch!!'*'!!pos!!'*'!!long);
endsub;
run;
 
 
 
options cmplib=sasuser.MyFuncs;
DATA a; SET a;
result=extr(string1,string2);run;
 
proc print DATA=a;run;
voici la log

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
 
1044  DATA a;
1045  string1='LES MARCHES DE L OISE';
1046  string2='MARCHES DE L OISE BP 60520';output;run;
 
NOTE: La TABLE WORK.A a 1 observation(s) et 2 variable(s).
NOTE: L'étape DATA a utilisé (Durée totale du traitement) :
      temps réel          0.01 secondes
      temps UC            0.03 secondes
 
 
1047
1048  proc print data=a;run;
 
NOTE: Ecriture du corps du fichier HTML : sashtml44.htm
NOTE:  1 observation(s) lue(s) dans la table WORK.A.
NOTE: Procédure PRINT a utilisé (Durée totale du traitement) :
      temps réel          0.24 secondes
      temps UC            0.07 secondes
 
 
1049
1050  proc fcmp outlib=sasuser.MyFuncs.ChrFuncs;
1051
1052  function extr(string1$,string2$) $100;
WARNING: Function extr is already defined in packet CHRFUNCS. Function extr as defined in the current program will be used
         as default when packet is not specified.
1053  match=-1;
1054  ch='XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
1055  pos=-1;
1056  long=0;
1057  l=length(string1);
1058  do i = 1 to L;
1059  do j=1 to L-i+1;
1060  chaine=substr(string1,i,j);
1061  match=index(string2,chaine);
1062
1063  longueur=length(chaine);
1064  put string1 string2 match i j chaine longueur;
1065  if (match>0 and longueur>long) then pos=i;
1066  if (match>0 and longueur>long) then ch=chaine;
1067  if (match>0 and longueur>long) then long=j;
1068
1069
1070  end;end;
1071  return(ch!!'*'!!pos!!'*'!!long);
NOTE: Numeric value converted to character for argument 2 of '||' operation at ligne 1071 colonne 15.
NOTE: Numeric value converted to character for argument 2 of '||' operation at ligne 1071 colonne 25.
1072  endsub;
1073  run;
 
NOTE: Function extr saved to sasuser.MyFuncs.ChrFuncs.
NOTE: Procédure FCMP a utilisé (Durée totale du traitement) :
      temps réel          0.22 secondes
      temps UC            0.15 secondes
 
 
1074
1075
1076
1077  options cmplib=sasuser.MyFuncs;
1078  data a; set a;
1079  result=extr(string1,string2);run;
NOTE: Numeric value converted to character for argument 2 of '||' operation at ligne 0 colonne 15.
NOTE: Numeric value converted to character for argument 2 of '||' operation at ligne 0 colonne 25.
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 1 1 L 1
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 1 2 LE 2
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 1 3 LES 3
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 1 4 LES 3
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 1 5 LES M 5
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 1 6 LES MA 6
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 1 7 LES MAR 7
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 1 8 LES MARC 8
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 1 9 LES MARCH 9
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 1 10 LES MARCHE 10
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 1 11 LES MARCHES 11
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 1 12 LES MARCHES 11
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 1 13 LES MARCHES D 13
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 1 14 LES MARCHES DE 14
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 1 15 LES MARCHES DE 14
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 1 16 LES MARCHES DE L 16
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 1 17 LES MARCHES DE L 16
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 1 18 LES MARCHES DE L O 18
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 1 19 LES MARCHES DE L OI 19
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 1 20 LES MARCHES DE L OIS 20
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 1 21 LES MARCHES DE L OISE 21
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 2 1 E 1
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 2 2 ES 2
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 2 3 ES 2
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 2 4 ES M 4
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 2 5 ES MA 5
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 2 6 ES MAR 6
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 2 7 ES MARC 7
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 2 8 ES MARCH 8
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 2 9 ES MARCHE 9
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 2 10 ES MARCHES 10
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 2 11 ES MARCHES 10
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 2 12 ES MARCHES D 12
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 2 13 ES MARCHES DE 13
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 2 14 ES MARCHES DE 13
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 2 15 ES MARCHES DE L 15
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 2 16 ES MARCHES DE L 15
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 2 17 ES MARCHES DE L O 17
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 2 18 ES MARCHES DE L OI 18
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 2 19 ES MARCHES DE L OIS 19
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 2 20 ES MARCHES DE L OISE 20
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 3 1 S 1
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 3 2 S 1
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 3 3 S M 3
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 3 4 S MA 4
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 3 5 S MAR 5
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 3 6 S MARC 6
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 3 7 S MARCH 7
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 3 8 S MARCHE 8
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 3 9 S MARCHES 9
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 3 10 S MARCHES 9
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 3 11 S MARCHES D 11
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 3 12 S MARCHES DE 12
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 3 13 S MARCHES DE 12
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 3 14 S MARCHES DE L 14
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 3 15 S MARCHES DE L 14
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 3 16 S MARCHES DE L O 16
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 3 17 S MARCHES DE L OI 17
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 3 18 S MARCHES DE L OIS 18
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 3 19 S MARCHES DE L OISE 19
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 4 1   1
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 4 2 M 2
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 4 3 MA 3
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 4 4 MAR 4
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 4 5 MARC 5
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 4 6 MARCH 6
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 4 7 MARCHE 7
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 4 8 MARCHES 8
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 4 9 MARCHES 8
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 4 10 MARCHES D 10
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 4 11 MARCHES DE 11
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 4 12 MARCHES DE 11
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 4 13 MARCHES DE L 13
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 4 14 MARCHES DE L 13
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 4 15 MARCHES DE L O 15
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 4 16 MARCHES DE L OI 16
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 4 17 MARCHES DE L OIS 17
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 4 18 MARCHES DE L OISE 18
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 5 1 M 1
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 5 2 MA 2
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 5 3 MAR 3
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 5 4 MARC 4
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 5 5 MARCH 5
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 5 6 MARCHE 6
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 5 7 MARCHES 7
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 5 8 MARCHES 7
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 5 9 MARCHES D 9
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 5 10 MARCHES DE 10
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 5 11 MARCHES DE 10
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 5 12 MARCHES DE L 12
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 5 13 MARCHES DE L 12
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 5 14 MARCHES DE L O 14
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 5 15 MARCHES DE L OI 15
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 5 16 MARCHES DE L OIS 16
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 5 17 MARCHES DE L OISE 17
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 6 1 A 1
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 6 2 AR 2
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 6 3 ARC 3
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 6 4 ARCH 4
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 6 5 ARCHE 5
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 6 6 ARCHES 6
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 6 7 ARCHES 6
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 6 8 ARCHES D 8
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 6 9 ARCHES DE 9
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 6 10 ARCHES DE 9
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 6 11 ARCHES DE L 11
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 6 12 ARCHES DE L 11
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 6 13 ARCHES DE L O 13
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 6 14 ARCHES DE L OI 14
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 6 15 ARCHES DE L OIS 15
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 6 16 ARCHES DE L OISE 16
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 7 1 R 1
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 7 2 RC 2
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 7 3 RCH 3
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 7 4 RCHE 4
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 7 5 RCHES 5
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 7 6 RCHES 5
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 7 7 RCHES D 7
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 7 8 RCHES DE 8
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 7 9 RCHES DE 8
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 7 10 RCHES DE L 10
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 7 11 RCHES DE L 10
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 7 12 RCHES DE L O 12
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 7 13 RCHES DE L OI 13
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 7 14 RCHES DE L OIS 14
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 7 15 RCHES DE L OISE 15
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 8 1 C 1
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 8 2 CH 2
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 8 3 CHE 3
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 8 4 CHES 4
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 8 5 CHES 4
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 8 6 CHES D 6
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 8 7 CHES DE 7
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 8 8 CHES DE 7
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 8 9 CHES DE L 9
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 8 10 CHES DE L 9
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 8 11 CHES DE L O 11
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 8 12 CHES DE L OI 12
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 8 13 CHES DE L OIS 13
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 8 14 CHES DE L OISE 14
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 9 1 H 1
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 9 2 HE 2
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 9 3 HES 3
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 9 4 HES 3
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 9 5 HES D 5
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 9 6 HES DE 6
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 9 7 HES DE 6
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 9 8 HES DE L 8
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 9 9 HES DE L 8
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 9 10 HES DE L O 10
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 9 11 HES DE L OI 11
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 9 12 HES DE L OIS 12
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 9 13 HES DE L OISE 13
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 10 1 E 1
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 10 2 ES 2
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 10 3 ES 2
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 10 4 ES D 4
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 10 5 ES DE 5
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 10 6 ES DE 5
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 10 7 ES DE L 7
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 10 8 ES DE L 7
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 10 9 ES DE L O 9
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 10 10 ES DE L OI 10
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 10 11 ES DE L OIS 11
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 10 12 ES DE L OISE 12
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 11 1 S 1
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 11 2 S 1
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 11 3 S D 3
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 11 4 S DE 4
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 11 5 S DE 4
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 11 6 S DE L 6
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 11 7 S DE L 6
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 11 8 S DE L O 8
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 11 9 S DE L OI 9
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 11 10 S DE L OIS 10
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 11 11 S DE L OISE 11
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 12 1   1
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 12 2 D 2
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 12 3 DE 3
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 12 4 DE 3
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 12 5 DE L 5
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 12 6 DE L 5
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 12 7 DE L O 7
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 12 8 DE L OI 8
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 12 9 DE L OIS 9
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 12 10 DE L OISE 10
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 13 1 D 1
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 13 2 DE 2
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 13 3 DE 2
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 13 4 DE L 4
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 13 5 DE L 4
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 13 6 DE L O 6
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 13 7 DE L OI 7
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 13 8 DE L OIS 8
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 13 9 DE L OISE 9
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 14 1 E 1
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 14 2 E 1
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 14 3 E L 3
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 14 4 E L 3
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 14 5 E L O 5
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 14 6 E L OI 6
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 14 7 E L OIS 7
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 14 8 E L OISE 8
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 15 1   1
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 15 2 L 2
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 15 3 L 2
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 15 4 L O 4
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 15 5 L OI 5
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 15 6 L OIS 6
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 15 7 L OISE 7
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 16 1 L 1
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 16 2 L 1
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 16 3 L O 3
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 16 4 L OI 4
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 16 5 L OIS 5
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 16 6 L OISE 6
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 17 1   1
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 17 2 O 2
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 17 3 OI 3
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 17 4 OIS 4
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 17 5 OISE 5
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 18 1 O 1
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 18 2 OI 2
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 18 3 OIS 3
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 18 4 OISE 4
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 19 1 I 1
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 19 2 IS 2
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 19 3 ISE 3
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 20 1 S 1
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 20 2 SE 2
LES MARCHES DE L OISE MARCHES DE L OISE BP 60520 0 21 1 E 1
NOTE:  1 observation(s) lue(s) dans la table WORK.A.
NOTE: La table WORK.A a 1 observation(s) et 3 variable(s).
NOTE: L'étape DATA a utilisé (Durée totale du traitement) :
      temps réel          0.70 secondes
      temps UC            0.57 secondes
 
 
1080
1081  proc print DATA=a;run;
 
NOTE: Ecriture du corps du fichier HTML : sashtml45.htm
NOTE:  1 observation(s) lue(s) dans la TABLE WORK.A.
NOTE: Procédure PRINT a utilisé (Durée totale du traitement) :
      temps réel          0.24 secondes
      temps UC            0.06 secondes
et voici l'output

Code :
1
2
3
4
5
 
Obs                   string1                          string2
1        LES MARCHES DE L OISE             MARCHES DE L OISE BP 60520
Obs                                      result
1        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX*          -1*         0
jerome_pdv2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/09/2011, 16h39   #2
Membre éclairé
 
Homme
statisticien
Inscription : mai 2011
Messages : 212
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : statisticien
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : mai 2011
Messages : 212
Points : 319
Points : 319
résolu en remplaçant

match=INDEX(string2,chaine);


par

match=INDEX(string2,compbl(chaine));

Ca marche, je vois ce qui bloquait (présence de blancs à droite ou à gauche), par contre je n'ai aucune idée d'où ces blancs en surnombre pouvaient ils bien venir ?
jerome_pdv2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/09/2011, 11h30   #3
Expert Confirmé
 
Avatar de olivier.decourt
 
Homme Olivier Decourt
Formateur en informatique
Inscription : avril 2008
Messages : 1 467
Détails du profil
Informations personnelles :
Nom : Homme Olivier Decourt
Âge : 34
Localisation : France

Informations professionnelles :
Activité : Formateur en informatique
Secteur : Conseil

Informations forums :
Inscription : avril 2008
Messages : 1 467
Points : 2 828
Points : 2 828
Citation:
Envoyé par jerome_pdv2 Voir le message
par contre je n'ai aucune idée d'où ces blancs en surnombre pouvaient ils bien venir ?
Je pense que l'absence de déclaration de longueur pour la variable CHAINE a entraîné une longueur automatique (peut-être 200 ? Aucune idée sans chercher loin dans la doc) et du coup, tes valeurs sont complétées par des blancs à droite pour atteindre cette longueur.
Comme pour les fonctions PRX, il est prudent pour utiliser INDEX ou FIND de faire systématiquement un STRIP de la variable testée pour virer les blancs à gauche et à droite.
olivier.decourt est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 12/09/2011, 13h04   #4
Membre éclairé
 
Homme
statisticien
Inscription : mai 2011
Messages : 212
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : statisticien
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : mai 2011
Messages : 212
Points : 319
Points : 319
Merci Olivier

J'aimerais définir la taille de var1 et var2

j'ai essayé avec

FUNCTION extr(string1 $100 ,string2 $100 ) $100;

mais ça ne semble pas marcher...
jerome_pdv2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2011, 22h55   #5
Rédacteur
 
Homme Stéphane
Consultant et formateur SAS et Cognos
Inscription : avril 2009
Messages : 1 791
Détails du profil
Informations personnelles :
Nom : Homme Stéphane
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Consultant et formateur SAS et Cognos
Secteur : Conseil

Informations forums :
Inscription : avril 2009
Messages : 1 791
Points : 4 012
Points : 4 012
Tu peux essayer un ATTRIB ?

http://support.sas.com/documentation...a002975100.htm
__________________
N'oubliez pas de cliquer sur lorsque votre problème est réglé !

Moteur de recherche dans les papiers SAS
datametric est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 11h43   #6
Membre éclairé
 
Homme
statisticien
Inscription : mai 2011
Messages : 212
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : statisticien
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : mai 2011
Messages : 212
Points : 319
Points : 319
merci Datametrics, en fait la fonction s'est complexifiée entre temps et j'avais besoin de créer des variables supplémentaires, du coup je les ai créé avec une longueur suffisamment longue le soucis est donc réglé
jerome_pdv2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h25.


 
 
 
 
Partenaires

Hébergement Web