Pages: [1]   Go Down
Author Topic: Cast d'un String vers integer  (Read 5835 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 45
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonsoir,
tout est dans le titre, je cherche le moyen de faire un cast sur un String pour le mettre en integer. ce qu'il y aura dans le string sera un chiffre bien sur.

Merci

PS: un String pas un Char*
Logged

Geneva
Offline Offline
Faraday Member
**
Karma: 30
Posts: 3231
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Code:
int Var = int(laStringQueJeVeuxPasserEnInt);

http://arduino.cc/en/Reference/IntCast
« Last Edit: January 11, 2011, 04:07:54 pm by jfs » Logged

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

0
Offline Offline
Newbie
*
Karma: 0
Posts: 39
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Je n'ai pas testé mais ça m'étonnerait que ça soit aussi simple

int var = int("1234") ; // var = 1234 ?

D'habitude, je pense qu'on passe par des String.charAt(x) - '0' dans une boucle multipliant par 10 à chaque fois.
Logged

0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 66
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Code:


  String  myString = String("123");
  int myStringLength = myString.length()+1;
  
  char myChar[myStringLength];
  myString.toCharArray(myChar,myStringLength);
  
  int result = atoi(myChar);
  
  Serial.println(result*2);


atoi();  non ?
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 45
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Merci, je vais tester sa. Cela m'énerve d'avoir oublié sa, à force de bosser en VB6 au boulot.
Logged

Geneva
Offline Offline
Faraday Member
**
Karma: 30
Posts: 3231
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Effectivement, ma solutions marche pôô....  ;D (essai sur Arduino Duemilanova)

Par contre la soluce de Goabonga fonctionne impec.


Edit : je viens de faire un essai sous Processing et ça fonctionne :

Code:
var = int(string);
« Last Edit: January 12, 2011, 03:44:52 am by jfs » Logged

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

0
Offline Offline
Newbie
*
Karma: 0
Posts: 45
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Qu'est-ce que tu appel faire un essaie sous Processing ?
Logged

Geneva
Offline Offline
Faraday Member
**
Karma: 30
Posts: 3231
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Processing est un environnement de développement avec la même IDE qu'Arduino, mais l'application est coté PC.

Il te permet de faire très rapidement des appli avec interfaces graphiques, portables sur toutes plateformes accueillant Java, sans que ce soit une usine à gaz pour compiler le tout.

http://processing.org/
« Last Edit: January 12, 2011, 03:45:30 am by jfs » Logged

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 66
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Par contre j'ai pas trouvé de solution directement du String au int.
Logged

Geneva
Offline Offline
Faraday Member
**
Karma: 30
Posts: 3231
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Pour Arduino ?
Logged

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 66
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

ouai pour Arduino , j'ai trouver que la solution en passant par toCharArray ...

faudrait rajouter une méthode ou deux dans la Class String du style toInt et toNumber ...
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 45
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Se serait bien effectivement mais bon d'un autre coté à force de tout simplifier on oublie les rudiments. cela fait en gros 1 an que je fait du VB.net et VB6 alors que m'a formation de base en IRIS c'est C et C++ mais on perd trop vite à pas pratiquer.

On s'y retrouve avec les langages moderne mais quand faut revenir au C ou C++ sans parler de l'assembleur que l'on a malheureusement pas vu, cela deviens vite un casse tête pour des choses que l'on est sur d'avoir pourtant déjà vu.

Comme par exemple j'essaie de manipuler des String car j'ai pris l'habitude en VB c'est simple mais du coup c'est pas forcement plus pratique en C++. Alors qu'en étude on a vu les String qu'a la fin, une fois que l'on avait vu avant les bases. Mais remanipuler des tableaux de char n'est pas si simple.
« Last Edit: January 12, 2011, 04:49:37 pm by Christophe37 » Logged

0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 62
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,

Vu dans la "release note" de la version 0022 d'Arduino :

Added character manipulation macros (from Wiring): isAlphaNumeric(),  isAlpha(), isAscii(), isWhitespace(), isControl(), isDigit(), isGraph(),  isLowerCase(), isPrintable(), isPunct(), isSpace(), isUpperCase(),  isHexadecimalDigit(), toAscii(), toLowerCase(), toLowerCase().

Added String.toInt() function

Serge
Logged

Pages: [1]   Go Up
Jump to: