Vor Kurzem wieder häufiger daran weitergebastelt und jetzt ist als etwas Sichtbares und ggfs. Brauchbares die erste Arbeitsversion einer flexiblen SplitText() Klasse dabei herausgekommen (ich denke, das ist das passende Unterforum hierfür).
Vielleicht kann das ja jemand gebrauchen - es gibt davon natürlich grob geschätzt Tausende davon...
Das Grundlegende:
Eingabe von Text, Delimiter, geschützt oder ungeschützt (die Bytefolge zwischen den Delimitern incl. der Delimiter selbst)
Text max. Länge auf 250 Byte definiert
Textspeicherung in reserviertem Arduino-String, der nur gelesen wird
Return-Wert lediglich als Integer Paar für nachfolgende lesende SW-Elemente. Das Integer Paar enthält zwei Indizes, Start und Ende des gefuundenen 'Wortes'.
Der Aufruf von splitText.getNextSplitPositions() wird so oft durchgeführt, bis kein Wort (Indices) mehr zurückkommt.
Die korrekte Rückgabe von (-1, -1) für "nichts mehr zu holen" checke ich noch genauer.
Falls geschützte Delimiter verwendet werden, um irgendwelche Bytefolgen als zusammenhängende Einheit zu schützen, ist ein zwei-Phasen Durchgang erforderlich. 1) Für ungeschützt / geschützte Bereiche 2) Für jeden Bereich dann nach Bedarf das Splitten.
Der Sketch ist in der aktuellen Version nicht vollstädig ausgetestet und wird bei nächster Gelegenheit etwas optimiert.
Er sollte laufen (bei mir auf WIN10), wenn die Dateien Arduino-korrekt in ./sketches und ./sketches/defaults_user_settings kopiert sind.
Ja, danke!
Da sehe ich mal wieder, WIE kompakt C/C++ code geschrieben werden kann - das Meine ist klar Pillepalle für die Meisten von euch ...
Es bingt mir im jetzigen Stadium aber mehr und auch mehr Spass, als Anfänger 'das Rad neu zu erfinden'.
Nach dem ersten Blick darauf:
das ist für mich bereits kaum bis schwer lesbar
ich möchte als Anfänger String verwenden, wo immer das keinen deutlichen Nachteil bedeutet
Meine Version ändert den String nicht, er wird nur gelesen und bleibt static sowie reserviert im Speicher, weil er ziemlich lang sein kann (Arduino Speicher)
Worum es mir auch ganz entscheidend geht:
So richtig verrennen möchte ich mich nicht mehr in der Gesamtstruktur /-aufbau (Sketch/Modul sowie durch einen Schalter einbindbar als .cpp). Sonst fange ich das gefühlt hunderste Mal an...
Einen neuen Kern-Algoritmus stelle ich demnächst hier ein. Er ist etwas kompakter.
Grüße
Uli
P.S.: Falls ihr denkt, dass dies das falsche Forum dafür ist, bitte ich um entsprechende Info.
das 'falsche' Forum ...
Ja und nein - es tummelt sich hier lediglich und verständlicherweise niemand, der sich auch für Anfänger-Code interessiert.
Würde mich doch noch sehr freuen, wenn wenigstens einer von euch sagen könnte, ob ich mich auf dem 'richtigen' Weg befinde oder schon wieder alles neu aufsetzen muss :-(
Danach bin ich auch wieder wech von hier und gehe mit dem aktuellen Ansatz evtl. zurück zum bisherigen Forum.
Danke für alle Beiträge - aus jedem konnte ich etwas Hilfreiches entnehmen!
Grüße
Uli
P.S.: Sollte eigentlich als Sketch in diesem Zustand laufen
Eine eigene Frage?
Dieser Thread ist über ein Jahr alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.