This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Masking Issue in RL-ARM ffind Function

Hi there,

I'm using RL-FlashFS library and I want to get the list of text files with .txt extension.

So I use ffind http://www.keil.com/support/man/docs/rlarm/rlarm_ffind.htm function with "R:*.txt" parameter as follow:

  FINFO info;

  info.fileID = 0;                             /* info.fileID must be set to 0 */

  while (ffind ("R:*.TXT", &info) == 0)  {       /* find whatever is in drive "R0:" */
    printf ("\n%-32s %5d bytes, ID: %04d",
            info.name,
            info.size,
            info.fileID);
  }
  if (info.fileID == 0)  {
    printf ("\nNo files...");
  }

But it returns list of whole files including non-txt files.

I found that this problem occurs when using wild char in the beginning of mask, eg. "*something".
But there is no problem when using "something*".

Any ideas?

Parents
  • I'm in hurry,
    so for now I wrote a dirty code to do that:

    while (ffind ("R:*.TXT",&info) == 0) {
            unsigned char fileNameLenght = strlen(info.name);
            if( info.name[--fileNameLenght]=='T' &&
                    info.name[--fileNameLenght]=='X' &&
                    info.name[--fileNameLenght]=='T' &&
                    info.name[--fileNameLenght]=='.' ) {
                    printf ("\n%-32s %5d bytes, ID: %04d", info.name, info.size, info.fileID);
            }
    }
    

Reply
  • I'm in hurry,
    so for now I wrote a dirty code to do that:

    while (ffind ("R:*.TXT",&info) == 0) {
            unsigned char fileNameLenght = strlen(info.name);
            if( info.name[--fileNameLenght]=='T' &&
                    info.name[--fileNameLenght]=='X' &&
                    info.name[--fileNameLenght]=='T' &&
                    info.name[--fileNameLenght]=='.' ) {
                    printf ("\n%-32s %5d bytes, ID: %04d", info.name, info.size, info.fileID);
            }
    }
    

Children