PDA

Просмотр полной версии : преобразовать любой объект в строку



MaxS
11.03.2004, 11:55
Написал в Access'е вывод лога в текстовый файл...
Как преобразовать любой объект в его информативное значение в виде строки?

CStr(Объект) - ругается... не помню на что :?

ps.
Сильно не пинать, перерыв в программировании на VBA был 2 года.

Naeel Maqsudov
17.03.2004, 12:34
Объект.Name или другие общие для ActiveX/COM-объектов свойства.

CStr(Объект) - НЕЛЬЗЯ, так как Объект - это суть указатель, т.е. адрес ячейки памямяти, где начинается конкретный инстанс (экземпляр) этого Объекта.

MaxS
18.03.2004, 08:51
Наверное не у всех есть свойство .Name? Это можно как-то проверить или проще обрабатывать событие ошибки?

ps.
А вот в 1С есть функция Строка(Объект) и всегда без ошибки возвратит что-нибудь полезное ;)

Naeel Maqsudov
19.03.2004, 09:19
Сомневаюсь, что Вам действительно требуется представление АБСОЛЮТНО ЛЮБЫХ объектов. Например, если речь идет о контролах (элементах управления), то у ActiveX существуют свойства, которые гарантированно имеются. Всегда можно получить ClassName ClassID для любого OLE-объекта. И т.д.


ps.
А вот в 1С есть функция Строка(Объект)

Ну что ж, :) очень рад за 1С. Попробуйте написать самостоятельно такую функцию. Обращайтесь к предполагяемым свойствам, а если не получается, то обрабатывайте ошибку внутри функции. Это, ИМХО, единственное решение.