Hej udviklere
Mit problem er at lcd displayet eller arduinoen ikke understøtter æøå. Derfor har jeg selv lavet nogle nye tegn. Jeg har lavet en lille funktion, som modtager alt der skal vises på displayet.
Til at opdele strings kan man benytte strtok(str,key).
Jeg skal den til at finde æ, ø og å i en streng og bytte det ud med: lcd.write(1)(ø),lcd.write(2)(æ) eller lcd.write(3)(å).
strtok finder de tegn der er angivet i key og opdeler strengen der.
Her er koden:
- ioe = strtok(edit1,keyoe);
- while(ioe!=NULL){
- lcd.print(ioe);
- if(first1){
- lcd.write(1);
- }
- ioe = strtok(NULL,keyoe);
- first1 = false;
- }
- iae = strtok(NULL,keyae);
- while(iae!=NULL){
- lcd.print(iae);
- if(first2){
- lcd.write(2);
- }
- iae = strtok(NULL,keyae);
- first2=false;
- }
-
- iaa = strtok(NULL,keyaa);
- while(iaa!=NULL){
- lcd.print(iaa);
- if(first3){
- lcd.write(3);
- }
- iaa = strtok(NULL,keyaa);
- first3 = false;
- }
og variablerne:
- char keyoe[] = "ø";
- char keyae[] = "æ";
- char keyaa[] = "å";
- char * ioe;
- char * iae;
- char * iaa;
- char edit1[16];
- char edit2[16];
Bemærk at jeg har været tvunget til at skrive en key for hvert tegn, selvom strtok kigger igennem alle tegn i en key, da jeg ønsker at indsætte de nye tegn de rigtige steder.
Det virker dog slet ikke som ønsket, da den bla. skriver ø bagved hvert ord, hvis den ikke i forvejen indeholder ø. Ydermere måtte jeg også sætte en stopper for at den ikke satte endnu et ø(eller et af de andre tegn), ved at bruge first(1,2,3). Dette bevirker at den ikke kan læse flere end et af hvert af øæå i hver streng, hvilket heller ikke er godt...
Er der en bedre måde man kan klare den her slags ting på eller kan i gennemskue, hvad jeg skal gøre for at få det til at virke? Jeg har ikke arbejdet så meget med strenge på den måde her før.
Håber i har lyst til at hjælpe!