On 01/23/2013 08:38 AM, Ferrous Cranus wrote:
Please DON'T tell me to save both the pin <=> filepath and associate them (that 
can be done by SQL commands, i know)
I will not create any kind of primary/unique keys to the database.
I will not store the filepath into the database, just the number which 
indicates the filepath(html page).
Also no external table associating fielpaths and numbers.
i want this to be solved only by Python Code, not database oriented.


That is:  I need to be able to map both ways, in a one to one relation, 
5-digit-integer <=> string

int( hex ( string ) ) can encode a string to a number. Can this be decoded 
back? I gues that can also be decoded-converted back because its not losing any 
information. Its encoding, not compressing.

But it's the % modulo that breaks the forth/back association.

So, the question is:

HOW to map both ways, in a one to one relation, (5-digit-integer <=> string) 
without losing any information?


Simple. Predefine the 100,000 legal strings, and don't let the user use anything else. One way to do that would be to require a path string of no more than 5 characters, and require them all to be of a restricted alphabet of 10 characters. (eg. the alphabet could be 0-9, which is obvious, or it could be ".aehilmpst" (no uppercase, no underscore, no digits, no non-ascii, etc.)

In the realistic case of file paths or URLs, it CANNOT be done.


--
DaveA
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to