OVH Cloud OVH Cloud

lire plusieurs valeurs....

5 réponses
Avatar
kurtz_le_pirate
bonjour,

depuis hier je sèche devant un problème simple (apparament) mais je ne
m'en sort pas, alors, peux être que ça sautera aux yeux pour vous :))

je dois extraire des valeurs d'un export par ldifde d'un active
directory de microsoft.
j'ai écrit le code suivant :
-------------------------------------------
...
while ($value=<SOURCEFILE>) {
chomp($value);
if ($value =~ /^dn: CN=/) {
$lineDN=$value;
$goodObject=0;
}
if ($value =~ /^objectClass: publicFolder/) {
$goodObject=1;
print RESULTFILE "\n\n$lineDN\n$value\n";
}
if ($goodObject &&($value =~ /^proxyAddresses: X400:/)) {
print RESULTFILE "$value\n";
}
if ($goodObject &&($value =~ /^proxyAddresses: SMTP:/)) {
print RESULTFILE "$value\n";
}
}
---------------------------------------------
ça marche sauf quand il y a plusieurs lignes qui commence par
"proxyAddresses: X400:" ou par "proxyAddresses: SMTP:", le programme
ne retiend que la premiere !!!

-- chaque "bloc" de données commence par "dn: CN=".
-- seul les objets de type "objectClass: publicFolder" sont à retenir.

si vous avez une lumière...
merci



--
klp

5 réponses

Avatar
Newsgroups
a marche sauf quand il y a plusieurs lignes qui commence par
"proxyAddresses: X400:" ou par "proxyAddresses: SMTP:", le programme
ne retiend que la premiere !!!


Une piste : ajouter un g à la fin, je crois que cela signifie "généra l"
$value =~ /^proxyAddresses: SMTP:/g

En espérant que cela aide... et en espérant que j'ai bien compris votre
probleme... :-)

Avatar
kurtz_le_pirate
"Newsgroups" a écrit dans le message de news:

a marche sauf quand il y a plusieurs lignes qui commence par
"proxyAddresses: X400:" ou par "proxyAddresses: SMTP:", le programme
ne retiend que la premiere !!!

Une piste : ajouter un g à la fin, je crois que cela signifie
"général"
$value =~ /^proxyAddresses: SMTP:/g

En espérant que cela aide... et en espérant que j'ai bien compris
votre
probleme... :-)


merci mais non, dans mon cas, le $value ne contient qu'un seul couple
nom:valeur. le /g serait utile si $value contenait plusieur ligne...

je continu à chercher.


--
klp

Avatar
DoMinix
bonjour,

depuis hier je sèche devant un problème simple (apparament) mais je ne
m'en sort pas, alors, peux être que ça sautera aux yeux pour vous :))

je dois extraire des valeurs d'un export par ldifde d'un active
directory de microsoft.
j'ai écrit le code suivant :
-------------------------------------------
....
while ($value=<SOURCEFILE>) {
chomp($value);
if ($value =~ /^dn: CN=/) {
$lineDN=$value;
$goodObject=0;
}
if ($value =~ /^objectClass: publicFolder/) {
$goodObject=1;
print RESULTFILE "nn$lineDNn$valuen";
}
if ($goodObject &&($value =~ /^proxyAddresses: X400:/)) {
print RESULTFILE "$valuen";
}
if ($goodObject &&($value =~ /^proxyAddresses: SMTP:/)) {
print RESULTFILE "$valuen";
}
}
---------------------------------------------
ça marche sauf quand il y a plusieurs lignes qui commence par
"proxyAddresses: X400:" ou par "proxyAddresses: SMTP:", le programme
ne retiend que la premiere !!!

-- chaque "bloc" de données commence par "dn: CN=".
-- seul les objets de type "objectClass: publicFolder" sont à retenir.

si vous avez une lumière...
merci





pourquoi ne pas questionner directement le Active Directory en ldap ?


--
dominix

Avatar
kurtz_le_pirate
"DoMinix" a écrit dans le message de news:
45521bb1$0$31564$


pourquoi ne pas questionner directement le Active Directory en ldap
?


ben, c'est que le fichier obtenu par ldifde date d'avant un plantage
exchange (crash du serveur). la mise en place d'un nouveau serveur
exchange dans l'ad a modifiée/effacée des données dans le global
catalogue. c'est pourquoi j'ai besoin de récupérer certainnes infos
qui ne se trouvent que dans ce fichier. c'est ma seule référence :(((


--
klp

Avatar
kurtz le pirate
In article <45533192$0$3975$,
"kurtz_le_pirate" wrote:

bon, j'ai trouvé... et c'était vraiment idiot !

il fallait juste rendre les comparaison insensible à la casse.

--
klp