INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
String-Array füllen?
26.06.2016, 11:22
Beitrag #1
String-Array füllen?
Hallo,
ich möchte gern ein Array mit String-Variablen füllen. Dazu lege ich erst einmal das Array an:
Code:
char* myStrings[]={"","","","","",""};

Nun möchte ich das Array an der ersten Position füllen:
Code:
String wert = "Zeile 1";
  myStrings[0] = wert;

Dabei bekomme ich leider folgende Fehlermeldung:
Zitat:...
cannot convert 'String' to 'char*' in assignment

Wie bekomme ich jetzt den String an die jeweilige Array-Position???

Gruß
Torsten
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
26.06.2016, 11:25
Beitrag #2
RE: String-Array füllen?
Diese Frage gab es hier in diesem Forum schon einmal.

Suche mal hier im Forum.

P.S. was macht dein anderes Problem, ein Rückinfo wäre schon gut?

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Gruß Dieter
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
26.06.2016, 12:01 (Dieser Beitrag wurde zuletzt bearbeitet: 26.06.2016 12:04 von torsten_156.)
Beitrag #3
RE: String-Array füllen?
(26.06.2016 11:25)hotsystems schrieb:  Diese Frage gab es hier in diesem Forum schon einmal.

Suche mal hier im Forum.

ok, mache ich...

Zitat:P.S. was macht dein anderes Problem, ein Rückinfo wäre schon gut?

Wenn du das hier meinst, hatte ich doch in #5 geantwortet. Oder welches Problem meintest du?

Gruß
Torsten
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
26.06.2016, 12:09
Beitrag #4
RE: String-Array füllen?
(26.06.2016 12:01)torsten_156 schrieb:  Wenn du das hier meinst, hatte ich doch in #5 geantwortet. Oder welches Problem meintest du?

Ja, das meinte ich und hatte ja wegen der Zeichenanzahl geantwortet.

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Gruß Dieter
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
26.06.2016, 12:18
Beitrag #5
RE: String-Array füllen?
Ok, ich hatte mich erst einmal mit der Lösung zufrieden gegeben. Denn ich habe den Scetch etwas umgebaut. Aber für´s Verständnis hatte ich ja eine Lösung.

Beim Umbau des Scetches bin ich dann leider auf das Problem mit dem String-Array gekommen. Mein Ziel ist es, auf einem OLED-Display in fünf Zeilen die einzelnen Schritte meiner ESP8266-Lösung (Bei Alarm eine EMail verschicken) darzustellen. Denn wenn alles dunkel abläuft, ist das ja nicht so toll Wink
Die einzelnen Zeilen sollen dann von unten nach oben laufen. Dazu das benötigte Array.

Gruß
Torsten
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
26.06.2016, 12:33 (Dieser Beitrag wurde zuletzt bearbeitet: 26.06.2016 12:35 von hotsystems.)
Beitrag #6
RE: String-Array füllen?
Ja, ok.
Ich habe da leider keine Lösung parat, kenne aber das Problem.
Wie schon gesagt, hierim Forum gab es diese Frage schon.

Hier die Antwort.

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Gruß Dieter
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
26.06.2016, 13:08
Beitrag #7
RE: String-Array füllen?
Danke dafür. Ich werde es jetzt mal versuchen und das Ergebnis dann postenWink

Gruß
Torsten
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
26.06.2016, 21:15
Beitrag #8
RE: String-Array füllen?
So, ich habe mich jetzt von dem Array verabschiedet! Habe mir gedacht, dass es ja auch mit fünf String-Variablen gehen sollteBig Grin
Jetzt geht es wie gewünscht. Da das Display nur fünf Zeilen darstellen kann, müssen bei der Anzeige weiterer Strings die fünf bestehenden Zeilen dann eine POsition nach oben rutschen. Also das erste rutscht dann oben raus. Habe es wie folgt gelöst:

Code:
#include "U8glib.h"

U8GLIB_SH1106_128X64 u8g(13, 11, 10, 9, 8);  // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9

void u8g_prepare(void) {
  u8g.setFont(u8g_font_6x10);
  u8g.setFontRefHeightExtendedText();
  u8g.setDefaultForegroundColor();
  u8g.setFontPosTop();
}

String str;
char valLine_1[10] = "";
char valLine_2[10] = "";
char valLine_3[10] = "";
char valLine_4[10] = "";
char valLine_5[10] = "";

String tmpValue;

int zaehler = 0;
//int Linepos = 0;
//bool letzteZeile = false;

void setup(void) {
  Serial.begin(9600);
pinMode(5,INPUT);

}

void loop(void) {
int buttonState = digitalRead(5); //liest den Taster ein
if (buttonState == HIGH)
  {
  zaehler++;
  Serial.println(zaehler);
  delay(500);

      switch(zaehler){
        case 1:
          tmpValue = "Zeile " + String(zaehler);
          tmpValue.toCharArray(valLine_1, 10);
          break;
        case 2:
          tmpValue = "Zeile " + String(zaehler);
          tmpValue.toCharArray(valLine_2, 10);
          break;
        case 3:
          tmpValue = "Zeile " + String(zaehler);
          tmpValue.toCharArray(valLine_3, 10);
          break;
        case 4:
          tmpValue = "Zeile " + String(zaehler);
          tmpValue.toCharArray(valLine_4, 10);
          break;
        case 5:
          tmpValue = "Zeile " + String(zaehler);
          tmpValue.toCharArray(valLine_5, 10);
          break;
        default:
          rotate();
          tmpValue = "Zeile " + String(zaehler);
          tmpValue.toCharArray(valLine_5, 10);
        }

} //von if

      //Schreibt das Display  
      u8g.firstPage();  
      do {
      u8g_prepare();
      u8g.drawStr(0, 0,  valLine_1);  
      u8g.drawStr(0, 10, valLine_2);
      u8g.drawStr(0, 20, valLine_3);
      u8g.drawStr(0, 30, valLine_4);
      u8g.drawStr(0, 40, valLine_5);
      } while( u8g.nextPage() );

}

void rotate()
{
  //Zeilen werden eine Zeile hoch geschoben
  //memcpy( ziel, quelle, anzahlbytes );
  memcpy(valLine_1, valLine_2, 10);
  memcpy(valLine_2, valLine_3, 10);
  memcpy(valLine_3, valLine_4, 10);
  memcpy(valLine_4, valLine_5, 10);
}

Gruß
Torsten
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Serieller string zwischenspeichern und wieder ausgeben. Matt 15 802 03.03.2018 20:23
Letzter Beitrag: Tommy56
  byte´s zu einem String zusammenfassen ? Franz54 18 1.100 31.01.2018 10:10
Letzter Beitrag: MicroBahner
  Arrays of String in C Diskusguppy 3 366 16.12.2017 10:12
Letzter Beitrag: Diskusguppy
  String nach Byte Array in ASCII-Codierung nexus1212 7 901 05.11.2017 14:36
Letzter Beitrag: Tommy56
  char-Array nach int? torsten_156 8 883 04.11.2017 18:44
Letzter Beitrag: Tommy56
  3 Stück LED 8x8 Matrix via Array ansteuern Bino87 10 1.257 30.10.2017 19:33
Letzter Beitrag: Bino87
  pinMode mit array luj1990 6 1.180 22.07.2017 10:24
Letzter Beitrag: Binary1
  String vergleichen georg01 15 1.851 18.07.2017 20:35
Letzter Beitrag: Tommy56
  String.charAt() ardun 3 647 02.07.2017 15:28
Letzter Beitrag: Tommy56
  Aus char string machen metzgefa 1 716 06.05.2017 15:15
Letzter Beitrag: Tommy56

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste