選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。
 
 
 

37 行
682 B

  1. #include <string.h>
  2. #include "TextReader.h"
  3. #include "esp_log.h"
  4. static const char *TAG = "TextReader";
  5. TextReader::TextReader(FILE* file)
  6. {
  7. this->f = file;
  8. }
  9. void TextReader::close()
  10. {
  11. fclose(this->f);
  12. }
  13. size_t TextReader::read(long pos, char* text, size_t len)
  14. {
  15. memset(text, 0, len);
  16. if (pos < 0) {
  17. len += pos;
  18. pos = 0;
  19. }
  20. if (len <= 0) {
  21. return 0;
  22. }
  23. if (this->f == NULL) {
  24. ESP_LOGE(TAG, "File not opened.");
  25. sprintf(text, "File could not be opened.");
  26. return 0;
  27. } else {
  28. fseek(this->f, pos, SEEK_SET);
  29. size_t read = fread(text, 1, len, this->f);
  30. return read;
  31. }
  32. }