Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Arduino String class: features missing (feature request) #152

Open
dsyleixa opened this issue Jul 24, 2021 · 0 comments
Open

Arduino String class: features missing (feature request) #152

dsyleixa opened this issue Jul 24, 2021 · 0 comments

Comments

@dsyleixa
Copy link

dsyleixa commented Jul 24, 2021

hi,
for Arduino C++ Strings some features are missing:
.readStringUntil(EOL) or perhaps a new .readln(): to read an entire textline all at once until end of line, discarding any EoL/CR
(e.g., text lines may have \n or \r\n at EoL, so readStringUntil('\n') or readStringUntil('\r') may fail or mess it up)

additionally also helpful:
.insert(substr, pos, len)
.delete(pos, len)
and especially
.TokenArg(token, delimiter1, delimiter2) // edit: optionally also just named .arg()
// returns the value of a token, e.g. for a String containing analog=1234;
String myArg = myString.TokenArg("analog", "=", ";") would return 1234 as a String.

OTOH, IMO .compareTo() is ambiguous, it returns +/-/0 for after/before/ident but completely unclear if or what when neither and they are completely different. Better if it returned NAN/-1/0/+1 for notIn/smaller/ident/bigger.

PS,
just recalled that the WebServer lib provides a method .arg() which works somehow like the requested String.TokenArg() functionality:

int Analog1=0;
String myArg = webserver.arg("analog");
if (myArg  != "") {
      Analog1 = myArg.toInt();
}

That could be also used as a pattern for a String class TokenArg function.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant