collapse

* Posts Recentes

Onde comprar kit de revelação de PCB's por KammutierSpule
[Hoje às 15:48]


Boa compra este osciloscópio? por jm_araujo
[Hoje às 07:56]


Frequência máxima de pwm com controlo de duty cycle de 0 a 100% por Njay
[Ontem às 19:02]


Augmented reality AR por josecarlos
[23 de Maio de 2018, 22:14]


MKR Vidor4000 por josecarlos
[23 de Maio de 2018, 18:06]


Robô BBC micro:bit controlado com gestos no telemóvel Android por Tayeb
[22 de Maio de 2018, 13:11]


Programar ATTiny85 sem Arduino por hackeduca
[22 de Maio de 2018, 12:20]


[Técnico de Electrónica] Anuncios para "consoveyo" por KammutierSpule
[22 de Maio de 2018, 09:06]


PWM com ventoinha por jm_araujo
[21 de Maio de 2018, 11:24]


NiCd por NiMH? por jm_araujo
[20 de Maio de 2018, 11:46]

Autor Tópico: Duvida em Divisão de strings/ Criação de array de strings  (Lida 648 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline Wolfz

  • Mini Robot
  • *
  • Mensagens: 59
Duvida em Divisão de strings/ Criação de array de strings
« em: 22 de Março de 2016, 10:06 »
Boas pessoal tudo bem?

Estou aqui com uma duvida em relação a como dividir uma string por "\t" (tabs) no arduino.

Eu tenho uma variável do tipo String ("0.91 0.43 0.90 0.43     0.75 -0.66 0.76 -0.65       -0.02 -1.00 -0.01 -1.00") e queria guardar cada parcela num array.

O problema é que quando eu crio um array de Strings o meu programa buga nao sei bem porque (mas é so quando crio esse array de Strings).

Já converti tambem a minha variável para Char para tentar fazer a divisão de chars, mas até agora o máximo que consegui foi através do strtok separar a primeira parcela.

O mais próximo que consegui para chegar ao pretendido foi utilizando este código:

Código: [Seleccione]
String aux;

void setup() {
  Serial.begin(9600);
  aux = "OLA\tMUNDO";

  // Length (with one extra character for the null terminator)
  int str_len = aux.length() + 1;
  char char_array[str_len];
  aux.toCharArray(char_array, str_len);

  //char charBuf[50];
  //aux.toCharArray(charBuf, 50);
  Serial.println(aux);
  String xval = getValue(char_array,'\t', 0);
  Serial.println(xval);
  xval = getValue(char_array, ' ', 1);
  Serial.println(xval);
}

void loop() {


}

String getValue(String data, char separator, int index)
{
 int found = 0;
  int strIndex[] = {
0, -1  };
  int maxIndex = data.length()-1;
  for(int i=0; i<=maxIndex && found<=index; i++){
  if(data.charAt(i)==separator || i==maxIndex){
  found++;
  strIndex[0] = strIndex[1]+1;
  strIndex[1] = (i == maxIndex) ? i+1 : i;
  }
 }
  return found>index ? data.substring(strIndex[0], strIndex[1]) : "";
}

Mas o problema é que queria guardar isso em um array e como disse quando crio um array de Strings no meu programa este crasha. 

Alguém me pode dar uma ajuda?

Offline Wolfz

  • Mini Robot
  • *
  • Mensagens: 59
Re: Duvida em Divisão de strings/ Criação de array de strings
« Responder #1 em: 22 de Março de 2016, 10:30 »
Ok pessoal, esqueçam o que eu disse. Já percebi o porque do crash de quando crio o array de strings.

Penso que seja devido a insuficiência de memoria :/