int Stinglaengebiszumkommer = String1.lenght() - String2.indexOf("=")???
String1.remove(0, Stinglaengebiszumkommer );
Serial.print("String1");
"1"
Ich möchte von Position 0 bis zum Kommers alles löschen und somit den endgültigen String erhalten.
String1 und String2 haben immer unterschiedliche längen.
ich habe das grade so gemacht den sonnst wüsste ich jetzt grade nicht wirklich wie...
String Messagelangth = "/Rgbsetting/ Plain: Sliderrgb1Ranges=";
Message.length() enthält den String aus Messagelangth + den wert hintern komma kommt aus den Slider über POST.
int Remove2 = Message.length() - Messagelangth.length();
int Remove3 = Message.length() - Remove2;
Serial.println(Remove3);
Ergibt dann immer 37 und ich kann so von 0 -> 37 alles löschen.
Wird mir denke ich auch nix anders überbleiben, wie dem den ganzen String mit zu teilen?.
Also möchte ich die Länge (BIS zum Gleichzeichen, und alles löschen bis dahin ).
Übrig bleibt dann nur was hinterm = ist.
Der String hat immer unterschiedliche länge, z.b
message.indexOf("Sliderrgb1Range=") > oder
message.indexOf("rgb5col=") >
Und meine Funktion soll den gesamten Message Außer was hinter den = ist Löschen.
Bitte beachte, dass, wenn das gesuchte nicht vorkommt, -1 zurück gegeben wird. Da ich byte verwende, wird daraus 255 und bei +1 kommt es zum Überlauf auf 0. Damit passt das für's remove.
Wenn Du auswerten willst, ob Dein zeichen enthalten ist, solltest Du int verwenden und musst dann auf >0 prüfen, bevor Du versuchst zu löschen.
Muss ich nicht dafür erst einmal etwas geschrieben haben? wo ist der unterschied zwischen Update und write?
Verstehe den unterschied nicht auf der Seite.
Update soll die Lebensdauer verlängern? aber wenn ich nie was dort geschrieben habe funktioniert es auch?
Einmal irgendwas reinschreiben.
Du hast doch Variablen. Die kannst Du auch vorbelegen und einmal im Setup reinschreiben. Dann die Zeile(n) auskommentieren.
Wenn Du übrigens für die Ewrite-Variablen nur ein byte brauchst, dann nmm auch nur ein byte.
Ein int belegt 2 bytes.
Ein guter Übersetzer, da ich kein english kann... www.deepl.com
Update schreibt dann ein Byte in das EEPROM, wenn sich der zu schreibende Inhalt von dem Inhalt der Speicherzelle unterscheidet. Sind die Werte identisch erfolgt kein Schreibzugriff.
der Code macht wenig Sinn.
erstens gibt es komfortable EEPROM.put() und EEPROM.get() Funktionen - auch für die EEPROM Emulation am ESP -
und zweitens wäre die Adressverwaltung im EEPROM über ein Struct einfacher und weniger fehleranfällig.
Naja der sinn dahinter ist das mein Ota Update inzwischen die Obergrenze von 1Mb erreicht hat, und ich mit diese Funktion einiges an Platz spare.
Den JavaScript Anteil habe ich auch bereits optimiert.
und zweitens wäre die Adressverwaltung im EEPROM über ein Struct einfacher und weniger fehleranfällig.