Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Commatext

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Commatext Responder citando

alguien podria mandarme un ejemplo de como usar commatext? he intentado esto sin demasiados resultados

Código:

void __fastcall TfrmPrincipal::Timer1Timer(TObject *Sender)
{
       if(Flujodedatos->Lines->CommaText == "$GPGGA,091328,4151.249,N,00317.046,E,1,04,03.0,-0022,M,50,M,,*65");
       Label1->Caption = Flujodedatos->Lines->CommaText.Pos(3);
}


Gracias machotes
_________________
El hombre es el unico ser que tropieza dos veces en la misma piedra ( en mi caso infinitas veces)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

CommaText, te devuelve todas las líneas de un Memo por ejemplo, en una sola separadas por comas o bien te permite asignar las líneas del Memo desde una sola línea con las cadenas separadas por comas.

Y donde has puesto el ".Pos(3)" lo que hace es devolverte la posición dentro de esa cadena del primer carácter "3" que encuentre (en este caso seria 11).

¿Realmente que es lo que necesitas hacer?
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Lo que necesito es tomar el valor de algunas subcadenas de cada cadena,por ejemplo de unas la latitud y la longitud, de otras la hora utc,de otrs la velocidad etc.....
probe con el metodo substring,puedes ver el ejemplo aqui:
https://cppbuilder.es/viewtopic.php?t=7843
son cadenas que recibo por el puerto serie rs 232 provenientes de un gps
gracias
_________________
El hombre es el unico ser que tropieza dos veces en la misma piedra ( en mi caso infinitas veces)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

O sea, con el "Pos(3)" anterior lo que querías obtener es la cadena que esta entre la 3ª y 4ª coma ? si es así, aquí va una función que puede servirte:
Código:
String GetTok(String str, int pos)
{
  str.Unique();
  while (str.Pos(",,"))
    str = StringReplace(str, ",,", ", ,", TReplaceFlags()<<rfReplaceAll);
  char* p = strtok(str.c_str(), ",");
  while (p && --pos)
    p = strtok(0, ",");
  return String(p).Trim();
}

Y un ejemplo de como usarla:
Código:
String datos  = "$GPGGA,091328,4151.249,N,00317.046,E,1,04,03.0,-0022,M,50,M,,*65";
// Obtenemos la 3ª cadena de la lista separada por comas
String salida = GetTok(datos, 3);

// salida contiene en este momento "4151.249"
ShowMessage(salida);
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Otra forma de hacerlo:
Código:
TStringList* sl = new TStringList;
sl->CommaText = "$GPGGA,091328,4151.249,N,00317.046,E,1,04,03.0,-0022,M,50,M,,*65";
int pos = 3;
Label1->Caption = sl->Strings[pos-1];
delete sl;
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.