wxAny to wxString

Это русская секция форума wxWidjets. В этой секции вы можете обсуждать любые вопросы, связанные с wxWidgets на вашем родном языке.
Post Reply
User avatar
cutecode
Filthy Rich wx Solver
Filthy Rich wx Solver
Posts: 245
Joined: Fri Dec 09, 2016 7:28 am
Contact:

wxAny to wxString

Post by cutecode » Wed Aug 30, 2017 7:43 pm

Есть ли универсальная функция для преобразования wxAny в строку?

этот код ни всегда устраивает

Code: Select all

	szRezult = any.As<wxString>();
например, для типов bool она возвращает "true"/"false" всместо 1/0.
А для wxDateTime возвращает пустую строку
regards,
Alexander Saprykin
www.wxwidgets.ru

ONEEYEMAN
Part Of The Furniture
Part Of The Furniture
Posts: 3467
Joined: Sat Apr 16, 2005 7:22 am
Location: USA, Ukraine

Re: wxAny to wxString

Post by ONEEYEMAN » Wed Aug 30, 2017 8:49 pm

Dobrogo vremeni sutok,
cutecode wrote: Есть ли универсальная функция для преобразования wxAny в строку?

этот код ни всегда устраивает

Code: Select all

	szRezult = any.As<wxString>();
например, для типов bool она возвращает "true"/"false" всместо 1/0.
I chto? Eto standartnye bulevskie znachenija. Ochen udobno - srazu zapisyvaetsja v "if()".
cutecode wrote: А для wxDateTime возвращает пустую строку
A kakoe wxDateTime imeet otnoshenie k wxString?
I esli vozvraschaet pustuju stroku to eto bug. "Test suite" zapuskat probovali? Kakaja OS/versija? Kakaja versija biblioteki? Kakoj kompiljator?

Sudja po dokumentacii drugoj variant otsutstvuet.
Mogno pravda poprobovat tak:

Code: Select all

bool res = any.GetAs( szResult );
if( res )
// success
else
// conversion failed
Spasibo.

User avatar
cutecode
Filthy Rich wx Solver
Filthy Rich wx Solver
Posts: 245
Joined: Fri Dec 09, 2016 7:28 am
Contact:

Re: wxAny to wxString

Post by cutecode » Wed Aug 30, 2017 9:32 pm

wx 3.1.1
работаю в винде, пробовал и в mingw и в VS2013

Code: Select all

_ttol("true") и _ttol("false") - всегда возвращают 0

Code: Select all

any.GetAs( szResult ); - Синтаксическа ошибка


я работаю с COM-Объектом,

Code: Select all

wxAutomationObject::GetProperty()
возвращает wxAny

а там может быть все что угодно, и мне все это надо представить в виде строки.
regards,
Alexander Saprykin
www.wxwidgets.ru

ONEEYEMAN
Part Of The Furniture
Part Of The Furniture
Posts: 3467
Joined: Sat Apr 16, 2005 7:22 am
Location: USA, Ukraine

Re: wxAny to wxString

Post by ONEEYEMAN » Wed Aug 30, 2017 10:12 pm

Добрый день/вечер,
cutecode wrote: wx 3.1.1
работаю в винде, пробовал и в mingw и в VS2013

Code: Select all

_ttol("true") и _ttol("false") - всегда возвращают 0
0/1 и true/false взаимозаменяемы.
cutecode wrote:

Code: Select all

any.GetAs( szResult ); - Синтаксическа ошибка
Интересно.
Судя по http://docs.wxwidgets.org/3.1.0/classwx ... 12316454d8 фуекция сузествует.
Какая ошибка?
cutecode wrote: я работаю с COM-Объектом,

Code: Select all

wxAutomationObject::GetProperty()
возвращает wxAny

а там может быть все что угодно, и мне все это надо представить в виде строки.
Если может быть все что угодно может проще проверить через http://docs.wxwidgets.org/3.1.0/classwx ... 05d6c5e1da.

Спасибо.

User avatar
cutecode
Filthy Rich wx Solver
Filthy Rich wx Solver
Posts: 245
Joined: Fri Dec 09, 2016 7:28 am
Contact:

Re: wxAny to wxString

Post by cutecode » Wed Aug 30, 2017 10:47 pm

Thanks for a hint. I've found a solution

Code: Select all

	wxVariant v;
	if (value.GetAs(&v))
	 szRezult1 = v.GetString();
	else
	{
		write_message(wxString::Format(L"Неизвестный тип данных wxAny"));
		wxASSERT(0);
	}
regards,
Alexander Saprykin
www.wxwidgets.ru

ONEEYEMAN
Part Of The Furniture
Part Of The Furniture
Posts: 3467
Joined: Sat Apr 16, 2005 7:22 am
Location: USA, Ukraine

Re: wxAny to wxString

Post by ONEEYEMAN » Wed Aug 30, 2017 11:24 pm

Hi,
cutecode wrote: Thanks for a hint. I've found a solution

Code: Select all

	wxVariant v;
	if (value.GetAs(&v))
	 szRezult1 = v.GetString();
	else
	{
		write_message(wxString::Format(L"Неизвестный тип данных wxAny"));
		wxASSERT(0);
	}
wxAny should be a straight replacement for wxVariant.
So I'm curious - how cone one works and the other doesn't.

Can you run the test suite and see if there is any failure?

Thank you.

Post Reply