"the files", "get URL" and Unicode File Names

stephen barncard stephenREVOLUTION2 at barncard.com
Sun Feb 21 00:25:12 EST 2010


Igor, why don't you try and use "the detailed files", URLDecode it and parse
out the filenames? Perhaps URLDecoding can preserve those characters.

just a thought. Not tested.
-------------------------
Stephen Barncard
San Francisco
http://houseofcubes.com/disco.irev


On 20 February 2010 13:48, Igor de Oliveira Couto <igor at pixelmedia.com.au>wrote:

> 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 at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your
> subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-revolution
>



More information about the use-livecode mailing list