
SD leseing til array
Dependencies: SDFileSystem mbed
Fork of SDFileSystem_HelloWorld by
Diff: main.cpp
- 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);