powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / создание метода объекта Print()
14 сообщений из 14, страница 1 из 1
создание метода объекта Print()
    #34488827
Ольга Семенова
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет

Имеется класс Address , в котором имеются следующие свойства:

Код: plaintext
1.
2.
3.
4.
Property City As %String;    
Property Country As %String;
Property State As %String(MAXLEN =  2 , MINLEN =  2 );
Property Street As %String;
Property Zip As %String;

Нужно в классе Address создать метод объекта Print(), выводящий адрес в 3 строки. Тип возвращаемого значения - %Library.Status. Для написания кода метода нужно использовать команду write , относительный точечный синтаксис и символы форматирования

как это реализовать?

Я думаю что структура модуля должна иметь примерный вид:
Код: plaintext
1.
2.
3.
; write улицу
; write город, штат, код
; write страну, если поле не пустое
quit  1 
...
Рейтинг: 0 / 0
создание метода объекта Print()
    #34489183
VadimF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ольга,

Расскажите нам все таки в каком ВУЗе Вы учитесь?

Скачайте http://www.intersystems.ru/cache/education/docs/ObjectQS.zip
и прочитайте документ Object Quick Start.
Там есть пример метода, который Вам нужен.

Вадим
...
Рейтинг: 0 / 0
создание метода объекта Print()
    #34489462
Ольга Семенова
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Учусь в Волгоградском Техническом

пишу вот так (см. ссылку на рисунок)
http://dump.ru/files/4/40456930913/

При компиляции Ругается:
авторInvalid command : 'write "Улица: "_$zobjval(,5,0,3,5)' : Offset:6 [write^Address.1]
TEXT: write "Улица: "_$zobjval(,5,0,3,5)
Address.1.INT(215) ERROR #1026: Invalid command : 'write !' : Offset:6 [write^Address.1]
TEXT: write !
Address.1.INT(216) ERROR #1026: Invalid command : 'write "Город: "_$zobjval(,2,0,3,2)' : Offset:6 [write^Address.1]
TEXT: write "Город: "_$zobjval(,2,0,3,2)
Address.1.INT(217) ERROR #1026: Invalid command : 'write !' : Offset:6 [write^Address.1]
TEXT: write !
Address.1.INT(218) ERROR #1026: Invalid command : 'write "Страна: "_$zobjval(,3,0,3,3)' : Offset:6 [write^Address.1]
TEXT: write "Страна: "_$zobjval(,3,0,3,3)
Errors detected during compilation.
...
Рейтинг: 0 / 0
создание метода объекта Print()
    #34489652
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Перед write поставьте пробел или табуляцию.
...
Рейтинг: 0 / 0
создание метода объекта Print()
    #34489701
newbie'
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ольга СеменоваУчусь в Волгоградском Техническом

пишу вот так (см. ссылку на рисунок)
http://dump.ru/files/4/40456930913/

При компиляции Ругается:
авторInvalid command : 'write "Улица: "_$zobjval(,5,0,3,5)' : Offset:6 [write^Address.1]
TEXT: write "Улица: "_$zobjval(,5,0,3,5)
Address.1.INT(215) ERROR #1026: Invalid command : 'write !' : Offset:6 [write^Address.1]
TEXT: write !
Address.1.INT(216) ERROR #1026: Invalid command : 'write "Город: "_$zobjval(,2,0,3,2)' : Offset:6 [write^Address.1]
TEXT: write "Город: "_$zobjval(,2,0,3,2)
Address.1.INT(217) ERROR #1026: Invalid command : 'write !' : Offset:6 [write^Address.1]
TEXT: write !
Address.1.INT(218) ERROR #1026: Invalid command : 'write "Страна: "_$zobjval(,3,0,3,3)' : Offset:6 [write^Address.1]
TEXT: write "Страна: "_$zobjval(,3,0,3,3)
Errors detected during compilation.

В начале каждой строки в теле метода Print() нужно поставить пробел либо символ табуляции; а если задекларировано возвращаемое значение %Status, хорошо бы поставить в конце, например, q $$$OK.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Method Print() As %Status
{
	write "Улица: "_..Street
	write "Город: "_..City
	write "Страна: "_..Country
	quit $$$OK
}
...
Рейтинг: 0 / 0
создание метода объекта Print()
    #34489742
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Волгоградский Технический - это бывший Политех?
...
Рейтинг: 0 / 0
создание метода объекта Print()
    #34490181
Ольга Семенова
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
newbie'
В начале каждой строки в теле метода Print() нужно поставить пробел либо символ табуляции; а если задекларировано возвращаемое значение %Status, хорошо бы поставить в конце, например, q $$$OK.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Method Print() As %Status
{
	write "Улица: "_..Street
	write "Город: "_..City
	write "Страна: "_..Country
	quit $$$OK
}

спасибо - откомпилировалось

А как в одной строке метода вывести сразу несколько свойств, т.е. в строку
Код: plaintext
	write "Город: "_..City
нужно дописать
Код: plaintext
write город, штат, код

какой здесь синтаксис? через запятую ? или есть какая-то функция конкатенации?
...
Рейтинг: 0 / 0
создание метода объекта Print()
    #34490246
newbie'
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ольга Семенова
А как в одной строке метода вывести сразу несколько свойств, т.е. в строку
Код: plaintext
	write "Город: "_..City
нужно дописать
Код: plaintext
write город, штат, код

какой здесь синтаксис? через запятую ? или есть какая-то функция конкатенации?

например,
Код: plaintext
1.
	write "Улица: "_..Street_" Город: "_..City_" Страна: "_..Country
или
Код: plaintext
1.
	write "Улица: ",..Street," Город: ",..City," Страна: ",..Country
...
Рейтинг: 0 / 0
создание метода объекта Print()
    #34490268
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
подчеркивание - конкатенация, но можно выводить через запятую. "!" - перевод строки
write "Улица: ",..Street,!,"Город: ",..City,!,"Страна: ",..Country
...
Рейтинг: 0 / 0
создание метода объекта Print()
    #34490288
Ольга Семенова
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а как сделать следующее:
Код: plaintext
write странуб если поле не пустое

пишу так
Код: plaintext
 if Country="" quit "" else write "Страна: "_..Country
ругается на else
...
Рейтинг: 0 / 0
создание метода объекта Print()
    #34490351
aleshap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интересно чему учат в Волгоградском Техническом?

можно так:

Код: plaintext
if ..Country]"" write "Страна: "_..Country
...
Рейтинг: 0 / 0
создание метода объекта Print()
    #34490371
Ольга Семенова
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleshapИнтересно чему учат в Волгоградском Техническом?

можно так:

Код: plaintext
if ..Country]"" write "Страна: "_..Country


а что такое ]
или это =
???
...
Рейтинг: 0 / 0
создание метода объекта Print()
    #34490388
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ольга Семенова
а что такое ]
или это =
???
] - это оператор "сортируется после". Любая строка сортируется после пустой строки, если не равна пустой строке. Так писали чтобы съэкономить символ в тексте и не писать
i v'=""
запись
i v]""
короче и используется как идиома.
...
Рейтинг: 0 / 0
создание метода объекта Print()
    #34490509
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ольга СеменоваУчусь в Волгоградском Техническом
Землячка!
А мы работаем в Волжском
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / создание метода объекта Print()
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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