SD leseing til array

Dependencies:   SDFileSystem mbed

Fork of SDFileSystem_HelloWorld by mbed official

Revision:
2:57156358b223
Parent:
1:d84eab100439
Child:
3:5a08f9ecfb16
--- a/main.cpp	Tue Apr 18 08:13:59 2017 +0000
+++ b/main.cpp	Tue Apr 18 08:32:29 2017 +0000
@@ -4,36 +4,39 @@
 SDFileSystem sd(p5, p6, p7, p20, "sd"); // the pinout on the mbed Cool Components workshop board
 
 char filer[64][64];
-
-
-
-int main()
-{
+int numberOfFiles = 0;
 
 
-    DIR           *d;
+void sdToArray(char directory[64]="/sd", char type[5] = ".wav")
+{
+    DIR *d;
     struct dirent *dir;
-    d = opendir("/sd");
+    d = opendir(directory);
     char buffer[64];
     if (d) {
-        int i = 0;
         while ((dir = readdir(d)) != NULL) {
+            //leser alle filnavn fra sd kort og leger de i en buffer
             sprintf(buffer, "%s", dir->d_name);
-            if (!strcmp(strrchr(buffer, '\0') - 4, ".wav")) {
+            //sjekker at filen ikke starter med [ . ] og slutter med valgt type (wav).
+            //legger så disse i filer arrayet.
+            if (!strcmp(strrchr(buffer, '\0') - 4, type)) {
                 if (strncmp(buffer, ".",1)) {
-                    printf(":: %s ::\r\n",buffer);
-                    strcpy(filer[i], buffer);
-                    i++;
+                    strcpy(filer[numberOfFiles], buffer);
+                    numberOfFiles++;
                 }
             }
         }
 
         closedir(d);
     }
+}
 
-    printf("fin\r\n");
-    for(int i = 0; i<6; i++) {
-        printf("%s - \r\n",filer[i]);
+int main()
+{
+    sdToArray();
+    printf("WAV filer:\r\n");
+    for(int i =0; i < numberOfFiles;i++) {
+        printf("%d | %s \r\n",i,filer[i]);
     }
     return(0);