powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Создание глобала
25 сообщений из 25, страница 1 из 1
Создание глобала
    #36852936
Ostika
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Объясните, пожалуйста. Какие функции используются для создания глобалов. Как задать тип и форму глобала. Н-р: мне нужен глобал, в каждом узле которого будет разбиение на поля ID, Name, Nazvanie ну и др. Это не подузлы, а именно иформация самого узла. Как правильно задать типы этих полей. Может не много не понятно. Но по другому свою мысль выразить не могу.
Заранее спасибо.
...
Рейтинг: 0 / 0
Создание глобала
    #36853083
Ptn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На уровне глобалов нет никаких данных о типах. Что укажите то и сохранится.

Глобалы отличаются от локальных переменных только наличием символа крышки ^, абсолютно все операции над локальными переменными и глобалами идентичны.
Код: plaintext
1.
2.
3.
4.
5.
/// запись в локальную переменную array( 1 ) (то есть массив с индексом  1 ) списка из строк  "ID", "Name", "Nazvanie" 
set array( 1 )=$LB("ID", "Name", "Nazvanie")

/// запись в глобал SomGlobal с индексом  1  списка из строк  "ID", "Name", "Nazvanie" 
set ^SomGlobal( 1 )=$LB("ID", "Name", "Nazvanie")
Какой номер в списке соответствует какому полю определяете самостоятельно

В вашем же случае скорее всего нужно создать класс с двумя полями
Код: plaintext
1.
2.
3.
4.
5.
6.
Class SomeClass Extend %Persistent 
{
Property Name As %String;

Property Nazvanie As %String;
}

При компиляции класса у вас автоматически назначается поле ID - соответствующее номеру записи и автоматически формируется таблица SomeClass и можно писать
Код: plaintext
1.
select Name,Nazvanie from SomeClass where ID= 1 

Единственно что имя глобала где реально хранятся данные записей класса будет назначен автоматически (скорее всего ^SomeClassD в данном примере), хотя если открыть структуру хранения можно задать то имя глобала которое хочется/
...
Рейтинг: 0 / 0
Создание глобала
    #36864372
Ostika
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ptn спасибо, пригодилось :)
...
Рейтинг: 0 / 0
Создание глобала
    #36864594
Ostika
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно ли в глобале как то назвать части узлов.
Н-р: $LB("7","Волков Ю.Г., Мостовая И.В.","Социология")

"7" - ID
"Волков Ю.Г., Мостовая И.В." - Author
"Социология" - Name

Как им присвоить это имена, чтобы в SQL запросах указывать вывод именно данных значений (н-р только ID).
...
Рейтинг: 0 / 0
Создание глобала
    #36864929
Ostika
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уже не надо Все нашла.. 8)
...
Рейтинг: 0 / 0
Создание глобала
    #36865247
Ostika
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если глобал существует, то удалить его, или очистить от данных. Как можно это сделать? Нужно перезаписать глобал.
...
Рейтинг: 0 / 0
Создание глобала
    #36865369
Фотография П.С.М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ostika,

K ^GlobalName
...
Рейтинг: 0 / 0
Создание глобала
    #36865373
Фотография П.С.М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Эта команда убьет Ваш глобал
...
Рейтинг: 0 / 0
Создание глобала
    #36865379
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно удалить один узел с подузлами, например
k ^myglobal(key)

можно просто перезатереть узел глобала
s ^myglobal(key)="новые данные"

можно скопировать глобалл или узел глобала в другой глобал или узел глобала (с подузлами)
m ^global1(key1,key2)=^global0(key0)
...
Рейтинг: 0 / 0
Создание глобала
    #36865608
VadimF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Документация Using Caché Globals .
...
Рейтинг: 0 / 0
Создание глобала
    #36869138
Ostika
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
П.С.М. , Блок А.Н. спасибо, попробую.

VadimF спасибо за ссылку, только проблема в том, что англ. яз. я знаю плохо :) Потому и спрашиваю ))
...
Рейтинг: 0 / 0
Создание глобала
    #36869253
sedhfgtesrthesr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ostika,

Российское представительство IS ленится :)
Давно могли бы перевести документашку....а раз не переводят, значит не видят перспектив для развития в России.
...
Рейтинг: 0 / 0
Создание глобала
    #36869294
Ostika
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sedhfgtesrthesrРоссийское представительство IS ленится :)
Да уж

sedhfgtesrthesrДавно могли бы перевести документашку....а раз не переводят, значит не видят перспектив для развития в России.

Ну да, перспектив нету, только вот используют его все чаще и чаще :)
...
Рейтинг: 0 / 0
Создание глобала
    #36869391
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне тоже раньше сильно не хватало русской документации, да и сейчас иногда хочется.
Но проблема в том, что переводят документацию обычно переводчики, а не программисты,
причем даже с плохим знанием языка иногда проще понять английскую версию, чем переведенную русскую. Да и вообще английский язык, по-моему, давно стал стандартом технической документации в программировании, т.е. отсутствие русской документации уже вариант нормы, а не дефект.

Иногда хочется русскоязычной, но не документации, а скорее в области общих слов, идеологии, учебников, руководств. Так как там текста гораздо больше и некоторые ньюансы на буржуйском можно пропустить. Из очень хороших русских документов можно упомянуть руководство по администрированию.
...
Рейтинг: 0 / 0
Создание глобала
    #36869750
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блок А.Н.Но проблема в том, что переводят документацию обычно переводчики, а не программисты,
причем даже с плохим знанием языка иногда проще понять английскую версию, чем переведенную русскую.
Но нам таки даже сравнить не с чем...
Благо есть русская документация по MSM 4.14, с нее и начинают изучение молодые специалисты...
...
Рейтинг: 0 / 0
Создание глобала
    #36870514
sedhfgtesrthesr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ostika
Ну да, перспектив нету, только вот используют его все чаще и чаще :)

Неправда.

Блок А.Н.Мне тоже раньше сильно не хватало русской документации, да и сейчас иногда хочется.
Но проблема в том, что переводят документацию обычно переводчики, а не программисты,
причем даже с плохим знанием языка иногда проще понять английскую версию, чем переведенную русскую. Да и вообще английский язык, по-моему, давно стал стандартом технической документации в программировании, т.е. отсутствие русской документации уже вариант нормы, а не дефект.

Иногда хочется русскоязычной, но не документации, а скорее в области общих слов, идеологии, учебников, руководств. Так как там текста гораздо больше и некоторые ньюансы на буржуйском можно пропустить. Из очень хороших русских документов можно упомянуть руководство по администрированию.

Наличие русской документации не отменяет английскую. Сам пользуюсь только английскими версиями почти всех продуктов, НО, на японском и китайском ведь есть :)
...
Рейтинг: 0 / 0
Создание глобала
    #36871499
Ostika
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Задам вопрос в этой же теме.
Есть такой вот код.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
K ^Test.PrimGlD
	k ^CacheTempMorpho ;($j)
	if $g(init)# 2  {
		s rc=##class(%Text.Russian).DropDictionary()
		i rc s rc=##class(%Text.Russian).LoadDict("C:\Temp\folder\morphs.mrd") ;именно в таком порядке! ;AM01
		i rc s rc=##class(%Text.Russian).ExcludeCommonTerms( 1000 )
		k ^DictNew
		i 'rc 
		{
		i 'rc { d $system.OBJ.DisplayError(rc) } 
		q
		}
		w !,"Словари загружены"
	}
	if $g(init)\ 2 # 2  {
		s rc=##class(Test.PrimGl).%KillExtent() i 'rc 
		{
		i 'rc { d $system.OBJ.DisplayError(rc) } 
		q
		}
		w !,"Хранилище документов очищено"
	}

/*код создания глобала*/

Никак не могу понять, работает он или нет. Компилится без ошибок.

Это первоначальный варинт.

Код: plaintext
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.
ftload(init,folder) ; init# 2  - перезагружает словари ; init\ 2 # 2  - перезагружает документы. Т.е.:
			 ;  0  - ничего не делает со словарями, добавит в БД документы;
			 ;  1  - перезагрузит словари и добавит в БД документы, 
			 ;  2  - сотрет старое содержимое БД документов и добавит в БД документы
			 ;  3  - перезагрузит словари, сотрет старое содержимое БД документов и добавит в БД документы
			 ;
			 ; folder - каталог, где хранятся файл словаря morphs.mrd и тексты для загрузки в ft.doc
			 ;
			 ; NB! ^CacheTempMorpho стирается перед прогоном всегда! (он заполняется, если #%Text.Russian.DEBUG= 1 )
	i $g(folder)="" w !,"Каталог для загрузки словаря и/или текстов не задан" q
	s:$e(folder,$l(folder))'="\" folder=folder_"\"
	k ^CacheTempMorpho ;($j)
	if $g(init)#2 {
		s rc=##class(%Text.Russian).DropDictionary()
		i rc s rc=##class(%Text.Russian).LoadDict(folder_"morphs.mrd") ;именно в таком порядке! ;AM01
		i rc s rc=##class(%Text.Russian).ExcludeCommonTerms(1000)
		k ^DictNew
		i 'rc g fterrex
		w !,"Словари загружены"
	}
	if $g(init)\ 2 # 2  {
		s rc=##class(ft.doc).%KillExtent() i 'rc g fterrex
		w !,"Хранилище документов очищено"
	}
fterrex
	i 'rc { d $system.OBJ.DisplayError(rc) } 
	q 
/*код создания глобала*/
...
Рейтинг: 0 / 0
Создание глобала
    #36871585
sedhfgtesrthesr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ostika,

проблема то в чем, драгоценная вы наша?
OstikaНикак не могу понять, работает он или нет. Компилится без ошибок.
окаймите ваш код в функцию и вызовите из терминала, если контекст не сильно тяжелый, если требуется запускать в контексте - то проверьте, получаете ли вы ожидаемый результат или нет (например, через те же глобалы). Этот процесс называется отладка ;)

ps:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
...
i 'rc 
{
i 'rc { d $system.OBJ.DisplayError(rc) } 
q
}
...
это шедевр :)

psps:
К теме тут относится только этот кусочек кода:
Код: plaintext
/*код создания глобала*/
...
Рейтинг: 0 / 0
Создание глобала
    #36871606
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ostika,

В архиве , из которого был взят код, приведённый Вами выше, есть файл 1readme.htm .
В нём есть инструкции по проверке полнотекстового поиска для русского языка.
...
Рейтинг: 0 / 0
Создание глобала
    #36871627
Ostika
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
servit
так он работает вместе с теми файла, которые есть в архиве. А мне надо его переделать под себя. Т.е. часть программы перенести в функцию.
...
Рейтинг: 0 / 0
Создание глобала
    #36871658
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насколько помню, код достаточно универсален, он загружает в БД документы из всех текстовых файлов, помещенных в папку folder:
Код: plaintext
1.
2.
3.
	d $zu( 68 , 40 , 1 )
	s t0=$zh,bc= 0 ,mask=folder_"*.txt"
	f  s file=$zsearch(mask) s mask="" q:file=""  s rc=$$ftpar(file) i 'rc u $p w !,rc q
Странно, что вы этого не заметили.
...
Рейтинг: 0 / 0
Создание глобала
    #36871677
Ostika
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alexey MaslovСтранно, что вы этого не заметили.

Мне эта часть не нужна, у меня идет загрузка из глобала в глобал. Нужно именно морфологичекую обработку провести, а для этого нужен файл morphs.mrd. Поэтому и получается, что все работает и загружается, а нужного результата нет. Мне только этот кусок из программы нужен.
...
Рейтинг: 0 / 0
Создание глобала
    #36871684
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ostika

Если Вы используете свой формат файла грамматического словаря, то Вам нужно смотреть метод LoadDict в классе %Text.Russian .
...
Рейтинг: 0 / 0
Создание глобала
    #36871696
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
	k ^CacheTempMorpho ;($j)
		s rc=##class(%Text.Russian).DropDictionary()
		i rc s rc=##class(%Text.Russian).LoadDict(folder_"morphs.mrd") ;именно в таком порядке! ;AM01
		i rc s rc=##class(%Text.Russian).ExcludeCommonTerms( 1000 )
		k ^DictNew
		i 'rc g fterrex
		w !,"Словари загружены"
И больше вам ничего не нужно :)
Если не секрет, для чего собираетесь использовать морфологическую обработку?
...
Рейтинг: 0 / 0
Создание глобала
    #36872689
Ostika
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alexey MaslovИ больше вам ничего не нужно
Спасибо, попробую :)

Alexey MaslovЕсли не секрет, для чего собираетесь использовать морфологическую обработку?
Нужно сделать поиск на сайте. А так как с Каше я не так давно работаю а точнее только начала, то вот приходится по крупицам собирать :)
...
Рейтинг: 0 / 0
25 сообщений из 25, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Создание глобала
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]