"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