Go Down

Topic: Comment puis concatener un string avec un char (Read 464 times) previous topic - next topic

pierrot10

Feb 18, 2013, 06:32 pm Last Edit: Feb 18, 2013, 06:56 pm by pierrot10 Reason: 1
Bonjour,
Voilà, je m'excuse si ma question devait être bête mais je ne maitrise pas encore Sketch à 100%

J'ai c'ette chaine de caractere

Code: [Select]
char coords[64];
char  coordinate[8];
char flat="12.33332";
char flon="65.1000";
const String request = "GET /opt/updatesql.php";
const String request_end = " HTTP/1.1";


et j'essaye de faire ceci

Code: [Select]
       
    strcpy(coords, request);
     strcat(coords, "?");
     
     strcat(coords, "lat=");
     // Latitude
     dtostrf(flat, 2, 4, coordinate);
     strcat(coords, coordinate);
     
     strcat(coords, "&");
     
     //Longitude
     strcat(coords, "long=");
     dtostrf(flon, 2, 4, coordinate);
     strcat(coords, coordinate);

     strcat(coords, " HTTP/1.1");
     // Terminate the string
     strcat(coords, "\0");
     
     Serial.println(coords);


Quand je compile, j'ai un message d'erreur à ce niveau

Code: [Select]
strcpy(coords, request);
et je pense que que parce que "request" est une String.

En fait je préfèrerai avoir tout en String. Comment puis-je alors concatener deux String en prenant en compte que coords est déclaré en String

Code: [Select]
String coords;

Merci pour vos lumières  :smiley-roll-sweat:
Il ne suffit pas de tout savoir, la persévérance, c'est déjà presque tout!

B@tto

String ? Skywood va gueuler ... xD

Blague à part, enfin pas tant que ça, la classe String est assez problématique.
Code: [Select]
const String request = "GET /opt/updatesql.php";
const String request_end = " HTTP/1.1";


C'est

Code: [Select]
const request[] = "GET /opt/updatesql.php";
const request_end[] = " HTTP/1.1";


Blog électronique : battomicro.wordpress.com
Photographie : www.interactive-celebration.fr
Fablab de Montpellier : www.labsud.org

pierrot10

Salut merci pour ta réponse.
J'avais aussi pensé à ca, mais en passant les variable requtes et request_end en char, ca ma généré une erreur.

En fait j'ai voulu faire trop compliqué.

J'ai fait comme ceci.
J'ai laissé en char
Code: [Select]

*/
      strcpy(coords, "?");
     
      strcat(coords, "lat=");
      // Latitude
      dtostrf(flat, 2, 4, coordinate);
      strcat(coords, coordinate);
     
      strcat(coords, "&");
     
      //Longitude
      strcat(coords, "long=");
      dtostrf(flon, 2, 4, coordinate);
      strcat(coords, coordinate);
     
      strcat(coords, "&");
     
[... suite du code...]

puis je passe mon code:

[code]sendGPRS(request + String(coords) + request_end + "\0");


Chais pas si c'est catolique et je n'ai pas encore essayé, mais je ne vais tarder à le faire...


[/code]
Il ne suffit pas de tout savoir, la persévérance, c'est déjà presque tout!

skywodd

Bonjour,

Bon comme d'hab. String -> au bucher hérétique !
Plus sérieusement, ton code je sait pas d'où il sort mais c'est pas encore ça ;)

Tu envois sur un SoftwareSerial ou un truc dans le genre je suppose (je vois qu'on parle de GPRS) ?
Si oui pourquoi concaténer des string quand tu peut faire plusieurs .print() à la suite ;)

Au passage ton appel à la fonction mélangeant String, char[] et '\0' c'est vraiment pas ça !
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy