Déjame ver si entiendo.
Por un lado tienes carpetas nombradas así:
Código:
0004896 . PEREZ
0023548 . GARZA
0000563 . ALVAREZ
etc.
pero en tu base de datos tienes
Código:
+---------+----------------+
| 0004896 | PEREZ MEJIA |
+---------+----------------+
| 0023548 | GARZA ESTRADA |
+---------+----------------+
| 0000563 | ALVAREZ SIERRA |
+---------+----------------+
En un momento dado tú tienes seleccionado un usuario, digamos GARZA ESTRADA y quieres abrir su carpeta.
Si formas el nombre de la carpeta con todo el campo de los apellidos te quedaría así:
Código:
0023548 . GARZA ESTRADA
Si repasas los folders de la carpeta inicial- por ejemplo usando un ciclo similar al de
epuigdef - encontrarás uno de nombre
Nunca coincidirá pero sí puede suponerse que el nombre del folder es el comienzo del nombre que formas con el número y los apellidos, y esto es algo que puedes probar fácilmente:
Código Delphi
[-]
if Pos(Folder, Format('%0.7d . %s', [NoUsuario, Apellidos])) <> 0 then
ShowMessage('Folder encontrado');
El Format de arriba te forma el nombre a probar: '0023548 . GARZA ESTRADA' y Folder sería el nombre del folder contra el que pruebas.
En resumen, podrías proceder asi:
Caundo requieres abrir el folder de un usuario dado, primero formas el nombre de la carpeta con ambos apellidos:
Mask := Format('%0.7d . %s', [NoUsuario, Apellidos]);
Recorres los folders de la carpeta inicial y en cada paso comparas el nombre del folder con el de Mask usando Pos. Si para alguno se cumple la condición, sales del ciclo y devuelves el nombre del folder encontrado.
// Saludos