Go Down

Topic: Comment puis concatener un string avec un char (Read 445 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 : http://battomicro.wordpress.com/
Photographie : www.interactive-celebration.fr

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