Страница 1 из 1

Как называетсся поле HOME Directory ? (неудается прочитать)

СообщениеДобавлено: 16 июл 2002, 19:17
skoltogyan
Пробую на Perl обращатсья к eDir. (учусь)
Нормально могу прочитать Given Name
Но при попытке прочитать содержимое поля Home Directory - какая-то
ерунда...

Может это поле как-то по другому называется ?

Вычитываю так:
$ttt1=$Entry->GetFieldValue("Home Directory");
print "\nHome Directory=",$ttt1, "\n";

СообщениеДобавлено: 17 июл 2002, 20:53
Музалёв Николай
Названия полей атрибутов. которе мы видим в NWADMIN часто называются в дебрях новела совсем по др. Например поле LAST NAME у них в списке атрибутов проходит как SURNAME. Есть еще круче! Не исключено . что в ваш случай тоже самое - уточняйте, кобразом называются атрибуты "поновеловски" прежде, чем к ним обращаться.
Удачи вам.

СообщениеДобавлено: 17 июл 2002, 23:42
Andrey Podoinikov
Сергей писал:
$ttt1=$Entry->GetFieldValue("Home Directory");
print "\nHome Directory=",$ttt1, "\n";


в данной случае в $ttt1 - будет нечто такое (по байтам):
00 00 00 04 73 65 72 76 65 72 00 73 65 72 76 65 72 5F 76 6F 6C 31 3A 5C 68 6F 6D 65 5C 70 61 76 00

Что в переводе должно означать server_vol1:\home\pav:
пространство имен в котором указан путь - первые четыре байта = 4 (long or os2)
имя сервера - первая строка ограниченная первым нулем
путь к домашнему каталогу - вторая строка ограниченная нулем

Исходя из описанного "содержимого" $ttt1 и приведенного выше кода получим на печать только "Home Directory=", т.к. при выводе переменной мы имеем какбы пустую строку (начинается ведб она с ноля)

Попробуй вывести эту переменную как массив (т.е. посимвольно) и посмотри что получится.

Прочитал так: (Всем спасибо, кто отвечал)

СообщениеДобавлено: 18 июл 2002, 09:10
skoltogyan
Прочитал так:
$nds1 = Perl2UCS->new("UCX:NWDIR") or die "Unable to the NWDir object";
$path = Perl2UCS->new("UCX:NWDIR.NWpath") or die "Can't get ucx:nwdir:nwpath
..
далее логин в дерево
...
$Entries = $nds1->{"Entries"};
$Objectname="ksr";
$Entry=$Entries->Item($Objectname);
$NDS_VOLUME_OBJECT_NAME="VOLUME";
$path->{"Volume"} = $NDS_VOLUME_OBJECT_NAME;
$path->{"Path"} = "/user/username/";
$path->{"Type"} = 1;
$path=$Entry->GetFieldValue("Home Directory");
$homepath = $path->{"Path"};
$homevolume = $path->{"Volume"};
$type = $path->{"Type"};
print "\nHome Directory=",$homepath, "\n";
print "\nHome Volume=",$homevolume, "\n";
print "\nHome Type=",$type, "\n";
логоут