 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Picard Master


Registrado: 18 Ene 2004Mensajes: 218Ubicación: Palamos (Girona) España
|
Publicado: Sab 29 May, 2004 9:40 pm Asunto: Commatext |
|
|
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 |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Lun 31 May, 2004 8:37 pm Asunto: |
|
|
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 |
|
 |
Picard Master


Registrado: 18 Ene 2004Mensajes: 218Ubicación: Palamos (Girona) España
|
Publicado: Lun 31 May, 2004 8:43 pm Asunto: |
|
|
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 |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Lun 31 May, 2004 9:26 pm Asunto: |
|
|
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 |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Mar 01 Jun, 2004 10:57 pm Asunto: |
|
|
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 |
|
 |
|
|
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
|
© 2002–2026 Club Builder · Funciona con phpBB.
|