Tengo un con un Listbox que contiene líneas de cuatro palabras. Cuando hago clic en una línea, estas palabras deben verse en cuatro cuadros de texto diferentes. Hasta ahora, tengo todo funcionando, pero tengo un problema con la conversión de caracteres. La cadena del cuadro de lista es un UnicodeString pero el strtok usa un char []. El compilador le dice a met can Can Convert UnicodeString to Char []. Este es el código que estoy usando para esto:Conversión de Unicodestring en Char []
{
int a;
UnicodeString b;
char * pch;
int c;
a=DatabaseList->ItemIndex; //databaselist is the listbox
b=DatabaseList->Items->Strings[a];
char str[] = b; //This is the part that fails, telling its unicode and not char[].
pch = strtok (str," ");
c=1;
while (pch!=NULL)
{
if (c==1)
{
ServerAddress->Text=pch;
} else if (c==2)
{
DatabaseName->Text=pch;
} else if (c==3)
{
Username->Text=pch;
} else if (c==4)
{
Password->Text=pch;
}
pch = strtok (NULL, " ");
c=c+1;
}
}
Sé que mi código no se ve bien, bastante mal en realidad. Acabo de aprender algo de programación en C++. ¿Alguien podría decirme cómo convertir esto?
Muchas gracias !! Voy a descubrir cómo funcionó lo que hiciste, ¡pero funcionó! –
Recientemente edité mi publicación para hacer la matriz de caracteres de longitud ansiB.Length() + 1. Esto es importante. Asegúrate de hacer ese cambio o podrías tener bloqueos aleatorios. –
Me sale un error después de cerrar el programa. Cuando utilicé el código que proporcioné, recibí una infracción de acceso, cuando lo rompo salta a Forms.hpp /* TCustomForm.Destroy */inline __fastcall virtual ~ TForm (void) {} ¿Podría eso significar que algo va a pasar? mal con la str o algo? –