From dd258a79753bac031d5223eaf4e8776a4cc05159 Mon Sep 17 00:00:00 2001 From: Fournier Gabriel <> Date: Mon, 16 Nov 2020 23:37:45 +0100 Subject: [PATCH] Lister des fichiers --- apps/reader/Makefile | 1 + apps/reader/list_book_controller.cpp | 16 +++++++++++++--- apps/reader/utility.cpp | 27 +++++++++++++++++++++++++++ apps/reader/utility.h | 10 ++++++++++ 4 files changed, 51 insertions(+), 3 deletions(-) create mode 100644 apps/reader/utility.cpp create mode 100644 apps/reader/utility.h diff --git a/apps/reader/Makefile b/apps/reader/Makefile index a3ddd6cd8..0d5267e5f 100644 --- a/apps/reader/Makefile +++ b/apps/reader/Makefile @@ -4,6 +4,7 @@ app_headers += apps/reader/app.h app_sreader_src = $(addprefix apps/reader/,\ app.cpp \ list_book_controller.cpp \ + utility.cpp \ ) apps_src += $(app_sreader_src) diff --git a/apps/reader/list_book_controller.cpp b/apps/reader/list_book_controller.cpp index d785f6e5b..150d46bff 100644 --- a/apps/reader/list_book_controller.cpp +++ b/apps/reader/list_book_controller.cpp @@ -1,5 +1,5 @@ #include "list_book_controller.h" - +#include "utility.h" namespace reader { @@ -12,8 +12,18 @@ ListBookController::ListBookController(Responder * parentResponder): ViewController(parentResponder), m_tableView(this, this) { - m_files[0].name= "Harry Potter 1.txt"; - m_nbFiles = 1; + size_t nbTotalFiles = External::Archive::numberOfFiles(); + + for(size_t i=0; i < nbTotalFiles; ++i) + { + External::Archive::File file; + External::Archive::fileAtIndex(i, file); + if(stringEndsWith(file.name, ".txt")) + { + m_files[m_nbFiles] = file; + m_nbFiles++; + } + } } int ListBookController::numberOfRows() const diff --git a/apps/reader/utility.cpp b/apps/reader/utility.cpp new file mode 100644 index 000000000..40eceaea7 --- /dev/null +++ b/apps/reader/utility.cpp @@ -0,0 +1,27 @@ +#include "utility.h" +#include + +namespace reader +{ + +bool stringEndsWith(const char* str, const char* pattern) +{ + int strLength = strlen(str); + int patternLength = strlen(pattern); + if (patternLength > strLength) + return false; + + const char* strIter = str + strlen(str); + const char* patternIter = pattern + strlen(pattern); + + while(*strIter == *patternIter) + { + if(patternIter == pattern) + return true; + strIter--; + patternIter--; + } + return false; +} + +} \ No newline at end of file diff --git a/apps/reader/utility.h b/apps/reader/utility.h new file mode 100644 index 000000000..b4d417618 --- /dev/null +++ b/apps/reader/utility.h @@ -0,0 +1,10 @@ +#ifndef __UTILITY_H__ +#define __UTILITY_H__ + +namespace reader +{ + +bool stringEndsWith(const char* str, const char* end); + +} +#endif \ No newline at end of file