FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Tipo de datos TByteDynArray
Esta es mi otra opción.. consumir un web service.
Pero se me presenta otro detalle mi piden como parámetro TByteDynArray XML y mi XML es un AnsiString. Como convierto AnsiString a TByteDynArray?? Gracias. Saludos. |
#2
|
||||
|
||||
Hola JM1985.
Podes hacer: Código:
void AnsiStringToBDA(AnsiString str, TByteDynArray &bda) { bda.set_length(str.Length()); Move(&str, &bda, str.Length()); }; Código:
void __fastcall TForm1::Button1Click(TObject *Sender) { AnsiString tmp, cadena = "ABC 012"; TByteDynArray vec; AnsiStringToBDA(cadena, vec); for(int i=0; i<vec.Length;i++) Memo1->Lines->Add(vec[i]); // 65 66 67 32 48 49 50 }
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#3
|
|||
|
|||
Hola que tal ecfisa Gracias por responder.
Voy a probar y te comento. Saludos. |
#4
|
|||
|
|||
Hola Eficsa
estoy tratando de implementar tu ejemplo pero no me convierte los caracteres a byte reemplaza la cadena por ???? y al ByteArray le agrega al prinicipio 3444 ?????, y la cadena.. Algo raro es que luego el usuario y la contraseña las vuelve ????? ??????? esto estoy haciendo. Código:
cfdi = archivoXML->Text; TByteDynArray vec; StringToByteArray(cfdi, vec); AnsiString cResponse; _di_Application ServicioFINKOK = GetApplication(); AcuseRecepcionCFDI *response; ServicioFINKOK->stamp(vec, InfoMain->usuarioCFDI, InfoMain->contraseniaCFDI); cResponse = response->xml; Este es el método. Código:
TByteDynArray TfrmFormaXML20::StringToByteArray(AnsiString cCadena, TByteDynArray &bda) { bda.set_length(cCadena.Length()); Move(&cCadena, &bda, cCadena.Length()); } |
#5
|
||||
|
||||
Hola de nuevo.
Hago una correción del código anterior: (me dió problemas en una prueba posterior) Código:
void AnsiStringToBDA(AnsiString str, TByteDynArray &bda) { bda.set_length(str.Length()); Move(str.c_str(), &bda[0], str.Length()); // <- Cambia esta línea }; Código:
void __fastcall TForm1::Button1Click(TObject *Sender) { AnsiString str = "Foros Club Delphi > Otros entornos y lenguajes > C++ Builder"; TByteDynArray bda; Memo1->Clear(); AnsiStringToBDA(str, bda); for(int i=0; i<bda.Length;i++) Memo1->Lines->Add((char)bda[i]); } Edito: No había visto tu último mensaje, proba con el cambio que te comento.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 11-04-2014 a las 19:41:11. |
#6
|
|||
|
|||
Te adjunto unas imagenes para que veas como me queda el resultado al final creo que no lo está codificando.
El método para consumir el web service me pideun parámetro como tipo TByteDynArray; Código:
virtual AcuseRecepcionCFDI* stamp(const TByteDynArray xml, const AnsiString username, const AnsiString password) = 0; y te devuelve como una clase y ahi accedes a lo que te devolvió no había visto algo parecido. |
#7
|
||||
|
||||
Hola JM1985.
No alcanzo a distinguir el texto en las imágenes y lamentablemente desconozco el método AcuseRecepcionCFDI, pero fijate este ejemplo que demuestra que el valor del AnsiString pasa correctamente al ByteDynArray: Código:
// Pasa el contenido del AnsiString al ByteDynArray void AnsiStringToBDA(AnsiString str, TByteDynArray &bda) { bda.set_length(str.Length()); Move(str.c_str(), &bda[0], str.Length()); }; // Muestra el contenido del ByteDynArray como char void ShowBDA(TByteDynArray bda, TMemo *Me) { String s; for(int i=0;i< bda.Length; i++) s += (char)bda[i]; Me->Clear(); Me->Lines->Add(s); } void __fastcall TForm1::Button1Click(TObject *Sender) { AnsiString str = "Foros Club Delphi > Otros entornos y lenguajes > C++ Builder"; TByteDynArray bda; AnsiStringToBDA(str, bda); // AnsiString a ByteDynArray ShowBDA(bda, Memo1); // mostrar contenido de ByteDynArray }
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#8
|
|||
|
|||
AcuseRecepcion
Hola buen día eficsa
disculpa ayer ya no continué con este hilo debido a que me dedique con otro requerimiento ya que este que ando resolviendo ya me llevo algo de tiempo. Voy a probar y te comento. Te podría enviar la clase que se genera al momento de importar el web service?.. Saludos |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Tipo de datos Varbytes | Marcela | Varios | 4 | 11-09-2006 20:48:58 |
Tipo de datos no coincide | Genner | SQL | 5 | 08-05-2006 17:14:40 |
Tipo de datos SI/NO acces | Genner | Conexión con bases de datos | 1 | 24-04-2006 20:19:16 |
Tipo de base de datos | CARSOFT_AR | Varios | 6 | 06-02-2006 17:49:26 |
Tipo de datos | Letty | Conexión con bases de datos | 4 | 13-01-2004 21:19:48 |
|