carlau schrieb:
> Vielen Dank für die rasche Antwort.
>
> Die Befehle gleich lang machen ist nun nicht mehr möglich, da das
> Protokoll größtenteils steht.
Du hast mich missverstanden (und ich habe mich unklar ausgedrückt).
Bei einem 2D Array sind alle Zeilen gleich lang. Das heißt nicht, dass
die Strings in dem Array alle gleich lang sein müssen. Du hast dann
einfach nur ein paar ungenutzte Bytes zwischen den Strings.
> Aber das mit dem 2ten Index klingt interessant und nach einer guten
> Lösung. Bloß wie könnte ich die Startpositionen der Strings in meinem
> EEPROM ermitteln.
Mit dem AdressOf-Operator?
> Was für ein array muss das dann sein?
Ein Array von Pointer auf char?
> was muss ich da
> genau abspeichern
Würd ich gar nicht.
Das Indexarray würde ich beim Programmstart zusammenbauen.
1 | char Text1[] = "Hallo";
|
2 | char Text2[] = "Welt";
|
3 |
|
4 | char* Texte[2];
|
5 |
|
6 | int main()
|
7 | {
|
8 | Texte[0] = Text1;
|
9 | Texte[1] = Text2;
|
10 |
|
11 | for( i = 0; i < 2; ++i )
|
12 | printf( "%s\n", Texte[i] );
|
13 | }
|
Du baust jetzt um auf: Texte sind im EEPROM
Wenn du damit durch bist, kannst du dich ja damit versuchen auch das
Texte Array ins EEPROM zu verfrachten und vom Compiler initialisieren zu
lassen
1 | char Text1[] = "Hallo";
|
2 | char Text2[] = "Welt";
|
3 |
|
4 | char* Texte[] = { Text1, Text2 };
|
5 |
|
6 | int main()
|
7 | {
|
8 | for( i = 0; i < 2; ++i )
|
9 | printf( "%s\n", Texte[i] );
|
10 | }
|