Ver Mensaje Individual
  #9  
Antiguo 18-10-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
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

Código:
0023548 . GARZA
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
Responder Con Cita