arduino / arduino/ArduinoCore-API

Arduino String class: features missing (feature request)

Đang mở
#152 0 bình luận 0 reaction 0 người được giao Xem trên GitHub
Ngôn ngữ chính
C++
Star
306
Fork
150
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Mô tả

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.

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Hướng nghiên cứu

Issue nêu tên các phương thức String của Arduino C++ nhưng không cung cấp tệp hoặc kiểm thử nào. Hãy bắt đầu bằng việc xem xét lớp String hiện có và hành vi của compareTo/read, sau đó làm rõ với các maintainer về API được yêu cầu và ngữ nghĩa của ký tự xuống dòng. Công việc được coi là hoàn tất khi phạm vi và hành vi của các thay đổi được đề xuất đã được thống nhất trước khi triển khai.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
cpp
Lĩnh vực
embedded-iot
Loại issue
Tính năng
Độ khó
5/5
Thời gian dự kiến
Hơn một tuần
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Cần làm rõ
Mức phù hợp với người mới
25/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.