Forum: Projekte & Code Flexible SplitText() Klasse (Anfänger)


von Uli (uiimcn)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

nachdem mein letzter thread 
Beitrag "Anfänger-Entwicklung einer Gärbox Steuerung" zu Recht völlig in 
die Hosen ging (so wie ich das vorhatte, geht das eben nicht ...) und 
mir der Beitrag von Manfred 
Beitrag "Re: Anfänger-Entwicklung einer Gärbox Steuerung" schwer zu denken 
gab, hatte ich hier erst mal Pause gemacht.

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.

Grüße
Uli

Ganz vergessen: Jegliche Anregung ist willkommen!

: Bearbeitet durch User
Beitrag #7894104 wurde vom Autor gelöscht.
von Peter D. (peda)


Lesenswert?


von Uli (uiimcn)


Lesenswert?

Peter D. schrieb:
> 
https://www.c-howto.de/tutorial/strings-zeichenketten/string-funktionen/string-zerteilen/

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.

: Bearbeitet durch User
von Matthias S. (dachs)


Lesenswert?

Uli schrieb:
> Falls ihr denkt, dass dies das falsche Forum dafür ist, bitte ich
> um entsprechende Info.

Ist es, siehe: https://www.mikrocontroller.net/forum/codesammlung ganz 
oben.

von Peter D. (peda)


Lesenswert?

Sollte keine Wertung sein, sondern nur ein Hinweis auf andere 
Lösungsvarianten.
Unter CPP gibt es z.B. auch istringstream zum Zerlegen:

https://www.tutorialspoint.com/how-to-process-strings-using-std-istringstream

von Uli (uiimcn)


Lesenswert?

Matthias S. schrieb:
> Uli schrieb:
>> Falls ihr denkt, dass dies das falsche Forum dafür ist, bitte ich
>> um entsprechende Info.
>
> Ist es, siehe: https://www.mikrocontroller.net/forum/codesammlung ganz
> oben.

Hmm - hatte mir das genau angschaut und bin auf keinen besseren Reim 
gekommen. "Codeschnipsel" war wohl der entscheidende Begriff.

Bin immer noch unsicher...

Gäbe es denn auf mikrocontroller.net ein passenderes Forum dafür?

von Peter D. (peda)


Lesenswert?

Uli schrieb:
> Bin immer noch unsicher...

Ich würde mal sagen, hier ist schon o.k.
Jeder darf im Forum posten, nicht nur Profis.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Peter D. schrieb:
> ich würde mal sagen, hier ist schon o.k.

Sehe ich genauso. Das passt schon.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.