type UInt64 = 0..9223372036854775807; function Unc (s: string): UInt64; var x: integer; begin Result := 0; for x := 1 to Length (s) do begin Result := Result + ((Ord (s[x])) shl ((x - 1) * 8)); end; end;
La lógica detrás de la función no es complicada, si bien si muy práctica y útil en varios casos cuando al manejar elementos en memoria interesa obtener identificadores únicos por alguna serie de textos ( me he encontrado con casos así al trabajar con sistemas de redes o árboles). Un inconveniente es que los números que se obtienen por esta función son muchas veces números muy grandes (de hasta 64 bits) por lo que la aplicación en una BD como Firebird por ejemplo resulta un tanto complicada; pero bueno no es tan fácil tenerlo todo siempre.
No hay comentarios.:
Publicar un comentario