ich verstehe im Moment etwas überhaupt nicht. In einem kleinen Projekt mit eingebundenem Webserver habe ich drei grössere Strings mit jew. rund 6k Länge definiert (Base64 Bilddaten). Diese stehen direkt nacheinander im Code.
Die Strings füge ich recht unspektulär in HTML-Code ein, was auch (fast) ohne Probleme funktioniert. Was das Kuriose ist, ist die Tatsache, das der dritte String nicht übernommen werden kann (das Bild aus dem Base64 Code wird nicht angezeigt). Ich habe alle möglichen Konstellationen ausgetestest, selbst wenn ich die vorigen beiden Strings auskommentiere, wird der letzte nicht angezeigt, die 2 davor immer. Im Moment behelfe ich mir damit, dass ich einfach die Reihenfolge ändere, da ich immer nur ein Bild der drei Base64 Codes brauche.
Ist das ein Bug oder hat da der ESP ein Problem mit so langen Strings oder ist das ein DAU-Fehler oder vielleicht klassisch RTFM?!
....nein, es ist damit alles in Ordnung, wenn ich die Reihenfolge drehe, z.B. den letzten String an den Anfang setze, dann wandert das Problem nicht nach oben, sondern es betrifft wieder den letzten String.
Hier ist mal ein Beispiel, jedoch gekürzt, ich wollte hier nicht 20k Code posten.
String SpeicherPlatz;
//Hier die Logos der Unternehmen in Base64, nicht verwendete werden in Kommentar gesetzt
String logo1 = "<img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIwAAABACAMAAAD/NG/DAAAAAXNSR\
0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAMAUExURQAAAAYGBgoKCg4ODhERERUVFRkZGR4eHiEhISYmJikpKS0tLTIyMjY2Njk5OT4+PkNDQ\
0ZGRklJSU5OTlJSUlVVVVlZWV5eXmJiYmZmZm9vb2lpaXNzc3V1dXp6ev8aKP8cKv0aLf8eLfcbN/0bNPcbPvkbPP8hLv4jMf8lMv4mNf8sN\
FGekUAt2FapT5NajDFiC2T4vLPrxgXae3aATVGhCGGJvhNk6ramwkTrm34TfVPhMXsAewVE4s9SIwQ/wBcJdUdIhFnkAAAAABJRU5ErkJggg\
==\"><br> <br>";
String logo2 = "<img src=\"data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAI4AAAAqCAIAAADqEvSnAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv\
8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAA72SURBVHhe7ZoJWFNXFsfJShKCCRC2hCVshkUWERBQtC6UUkerVmdqUUftOKW1VqtFq1N322q\
ZblrrtNNpP3Rc67jUalFBCoKKimxSZA9LIoQthCRkIcnc8C7kJXlAsLZDHX5fPjjnvkd47/3vPfecex9Op9NZjfF7AA9/jzHqGZNqtKPV9SL\
GWAAcjciU4uq2gnpxgUhW6GM3R9rlPDcifkyq0YXOSlciuJ7Ff0etbQFuqOO2vAfi+23VF5O/HEYqcEzWoxZ3K+RylUqjpZAIZDKRQbem08g\
grhMHtfe241pPYpFQnjKpTIH3C7QD5RBmO8Lj2b+76T6vWJl9V9lNCiN1pjt9gAAAABJRU5ErkJggg==\"><br> <br>";
String logo3 = "<img src=\"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/4QBoRXhpZgAATU0AKgAAAAgABAEaAAUAAAABAAAAPgEbAAUAAAABAA\
AARgEoAAMAAAABAAIAAAExAAIAAAARAAAATgAAAAAAAABgAAAAAQAAAGAAAAABcGFpbnQubmV0IDUuMC4xMQAA/9sAQwAbEhQXFBEbFxYXHhwbI\
ChCKyglJShROj0wQmBVZWRfVV1baniZgWpxkHNbXYW1hpCeo6utq2eAvMm6pseZqKuk/9sAQwEcHh4oIyhOKytOpG5dbqSkpKSkpKSkpKSkpKSk\
pKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSk/8AAEQgALgCrAwESAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQY\
0hMc7op/hIzitygDHfw7aGBY1Z1cHO/OSfrWxQBkR6DHGgX7VNx6YFa9\
AH/2Q==\"><br> <br>";
int subtexte[4];
Mit diesen Strings kommt allterdings nichts brauchbares raus. Was davor und danach steht habe ich mal mitkoopiert, wie schon gesagt, es funktioniert so lange alles, bis ich den dritten String verwende, da ist kein syntaktischer fehler. Als HTML wird lediglich der String eingefügt.
Wo sich SPIFFS oder LITTLEFS doch geradezu anbieten.
Es würde die Datenmenge verringern, die Codemenge verringern, und zudem dem Browser erlauben die Bilder zu cachen.
Dan schau doch wie man in HTML die Bilder einbettet, da ist nix mit String. Wen du das jedoch mit client.print machen willst dann gute Nacht.
Deshalb solltest zeigen was du vor hast
...das wäre die Lösung, würde ich auch liebend gerne machen, habe jedoch für die 2.xx IDE nichts gefunden, was mir nach einer Anleitung aussieht (und auch funktioniert)
Ein klein wenig behindert mich jedenfalls die 2er IDE da schon: Ich kenne momentan keine Möglichkeit, Dateien initial ins Filesystem hochzuladen wie das mit den Tools in der 1.8.19 geht.
Habe es bei SPIFFS mit der alten erledigt und erfolgreich mit einem Sketch aus der neuen weiter gearbeitet.
@Tommy56 , @combie :
Ihr habt ja recht, mit den Tabs von Jens würde es auch gehen.
Ist bei mir pure Bequemlichkeit und mit den ESP32 DevKit v2 und v4 geht das auch prima.
Ich nutze ja nur ESP8266. Da habe ich einen Grundwebserver mit OTA und LittleFS.
Den kopiere ich mir jeweils und baue darauf auf.
Der "Aufwand" fällt also nur ein Mal an.
....also, ich bin dem Ganzen mal weiter auf den Grund gegangen, Programmierungsfehler schliesse ich hiermit absolut aus.
Ich habe jetzt einem vierten String einen Dummy-Inhalt zugewiesen und siehe da, jetzt ist dieser vierte String leer und die drei Strings davor haben den richtigen Inhalt. Muss(!!) also ein Bug in der IDE sein. Was ich noch nicht getestet habe, ist, ab welcher Grösse eines Strings dieses Problem auftritt.
Drauf gekommen bin ich, als ich ein paar Zeilen Debug rein genommen hatte, mit denen ich mir die Stringlänge habe anzeigen lassen.
Ich melde das mal den Entwicklern, mal sehen, was die dazu für eine Meinung haben.
Bevor ich das tue, eine Frage, ich habe dazu nichts in den Referenzen gefunden, wieviel Bytes darf eigentlich ein String lang sein?