Dear List Members,

I am trying to write a reasonably simple test script, which would iterate 
through every file in a chosen directory, and give me the md5 checksum for that 
file. I am coming across a problem, which *may* be related to Unicode, but I'm 
not certain. The algorithm is like this:

* user selects directory
* get list of files in directory (using 'the files')
* for every file in the list:
** get the file data stream (using 'get URL "binfile:..."')
** get the checksum

The function that gets the datastream using 'get URL' returns 'empty' in case 
it cannot find the file. I am finding, that when a file has certain accented or 
foreign characters in its name, 'get URL' is unable to find it - even though it 
is using the original unmodified string returned by 'the files'... What is most 
puzzling, is that this does not happen with *every* file that has an 
international character in it - files with french, spanish, german or even 
scandinavian characters fly through without a hitch. But if I have a file that 
has a "ĉ" (c+circumflex) or "ŭ" (u+breve) in its name, for instance, it chokes.

Am I doing something wrong, or missing something basic? - or did I hit a 
limitation, or bug?

Many thanks for any guidance,

--
Igor de Oliveira Couto
Sydney, Australia


PS - the code in full, for those interested:

1) Make a new Mainstack, and add a field named "folderContents", and a button.
2) Put the following into the button's script:

on mouseUp
   answer folder "Please select a folder:"
   if it is empty then exit mouseUp
   local tDefault, tItems
   put the defaultFolder into tDefault
   set the defaultFolder to it
   put empty into field "folderContents"
   put the files into tItems
   repeat for each line xLine in tItems
      put "name=" & quote & xLine & quote after field "folderContents"
      put " checksum=" & quote & fileDigest(the defaultFolder & "/" & xLine) & 
quote & return after field "folderContents"
   end repeat
   filter field "folderContents" without empty
   set the defaultFolder to tDefault
end mouseUp

function hexDigest pvalue 
   local tRes, tMD5
   put md5Digest(pValue) into tMD5 
   get binaryDecode("H*",tMD5,tRes) 
   return tRes 
end hexDigest

function fileDigest pFile
   if there is a file pFile then
      get URL ("binfile:" & pFile)
      return hexDigest(it)
   else
      return empty
   end if
end fileDigest_______________________________________________
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution

Reply via email to