Hjælp ønskes til at lave en streng om til en array. (Læst 2862x)

Offline asm7100

  • Højpas filter
  • *****
  • Indlæg: 309
  • Antal brugbare Indlæg: 17
  • Hvis det ikke kan gøres så gør det alligevel.
    • Vis profil
Hjælp ønskes til at lave en streng om til en array.
« Dato: August 16, 2016, 04:12:38 »
Hejsa.
Håber en venlig sjæl kan hjælpe mig med følgende.
Jeg har en String der indeholder BAND 1,BAND 2,BAND 3,BAND 4,BAND 5,BAND 6,BAND 7,BAND 8,
Som man kan se så er der et skille tegn nemlig ,
Hvordan kan jeg få det langt ud i en array så det kommer til at se sådan her ud.
band[0] = BAND 1
band[1] = BAND 2
osv osv
Og hvis det er muligt vil jeg heller bruge // som skille tegn.
Bemærk at BAND 1 kun er et eksembel, det kunne lige så godt være TRA LA LA, HEJ MOR, HVEM ER DU DA osv osv.

MVH
Allan Madsen

 

Offline Jakobsen

  • Højpas filter
  • *****
  • Indlæg: 302
  • Antal brugbare Indlæg: 45
    • Vis profil
Sv: Hjælp ønskes til at lave en streng om til en array.
« Svar #1 Dato: August 16, 2016, 12:58:20 »
Hvilket programmeringssprog / platform bruger du?

Der er formentlig mange måder man kan gøre det på.
Husk hvis du ikke kender antallet af elementer i dit input at du ikke skriver udover størrelsen på array'et så dit program laver underlige ting  :o

For c# er her et eksempel http://www.dotnetperls.com/split

 

Offline asm7100

  • Højpas filter
  • *****
  • Indlæg: 309
  • Antal brugbare Indlæg: 17
  • Hvis det ikke kan gøres så gør det alligevel.
    • Vis profil
Sv: Hjælp ønskes til at lave en streng om til en array.
« Svar #2 Dato: August 16, 2016, 13:15:07 »
Har selv fundet en løsning, ved ikke om det kan gøres smarter.
Kode:
    if (message == "65 3 3 1 ffff ffff ffff"){
      int bandnr = 0;
      char c;
      band[0] = "";
      String bands = myNextion.listen(); //check for message
      for (int i = 0; i < bands.length(); i++) {
        c = bands[i];
        if (c == ',')
        {
          bandnr++;         
          band[bandnr] = "";
        }
        else
        {
           band[bandnr] += c;
        }
      }
      Serial.println(band[0]);
      Serial.println(band[1]);
      Serial.println(band[2]);
      Serial.println(band[3]);
      Serial.println(band[4]);
      Serial.println(band[5]);
      Serial.println(band[6]);
      Serial.println(band[7]);
    }
    else if (message == "65 0 d 1 ffff ffff ffdf") {
    }
    else
    {
      //Serial.println(message); //...print it out
    }
MVH
Allan Madsen