Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-10-2005
Giniromero Giniromero is offline
Miembro
 
Registrado: may 2003
Ubicación: Madrid
Posts: 296
Poder: 22
Giniromero Va por buen camino
Buenas,

¿se te ocurre alguna otra forma de abrir una carpeta?¿algún otro objeto que no sea el shellexecute y que me pueda servir para hacer esto?

¿Algún sitio donde poder documentarme mejor del ShellExecute?

Muchas Gracias

Virginia
__________________
Sonrie al mundo, y el mundo te sonreirá :)
Responder Con Cita
  #2  
Antiguo 18-10-2005
Avatar de epuigdef
epuigdef epuigdef is offline
Miembro
 
Registrado: jul 2005
Posts: 196
Poder: 19
epuigdef Va por buen camino
Vale, prueba esto:


Código Delphi [-]
procedure ListFileDir(Path: string; FileList: TStrings);
var
SR: TSearchRec;
begin
if FindFirst(Path + '*.*', faAnyFile, SR) = 0 then
begin
repeat
if (SR.Attr = faDirectory) then
begin
FileList.Add(SR.Name);
end;
until FindNext(SR) <> 0;
FindClose(SR);
end;
end;

Este procedimiento te devuelve una lista de todos los subdirectorios que contiene uno dado; por ejemplo, se puede llamar de la siguiente forma:

Código Delphi [-]
 
var datos : TStringList;
begin
datos := TStringList.create;
ListFileDir('c:\windows\', datos);
 
...
 
end;

y en datos tendrás una lista de todos los subdirectorios de c:\windows.

A partir de ahí, si tienes en código del usuario ya formateado a 7 caracteres (y es único) puedes encontrar el nombre completo si buscar el elemento de la lista 'datos' que empieza por éste código.

Te sirve?

Edu
Responder Con Cita
  #3  
Antiguo 18-10-2005
Giniromero Giniromero is offline
Miembro
 
Registrado: may 2003
Ubicación: Madrid
Posts: 296
Poder: 22
Giniromero Va por buen camino
Buenas,

si, en principio esto sería perfecto, lo único, es que no sé como se busca en un tipo de dato tStringList.

Gracias,

Virginia
__________________
Sonrie al mundo, y el mundo te sonreirá :)
Responder Con Cita
  #4  
Antiguo 18-10-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 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
  #5  
Antiguo 18-10-2005
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.052
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Jamás había oido/leido nada sobre el punto catalán, es la primera vez que veo esa expresión . Algunos editores de textos usan ese punto para indicar que hay un espacio, pero es lo único que he visto sobre eso.

¿Para qué y cómo se usa en la "vida real"?, ¿tiene algún significado especial?
Responder Con Cita
  #6  
Antiguo 19-10-2005
Avatar de epuigdef
epuigdef epuigdef is offline
Miembro
 
Registrado: jul 2005
Posts: 196
Poder: 19
epuigdef Va por buen camino
El punto catalán se utiliza en una construcción catalana que se llama "l germinada". Palabras como col·legi (colegio) la llevan. Suena com una l más larga, pero sin sonar a ll.


Un saludo

Edu
Responder Con Cita
  #7  
Antiguo 19-10-2005
Avatar de epuigdef
epuigdef epuigdef is offline
Miembro
 
Registrado: jul 2005
Posts: 196
Poder: 19
epuigdef Va por buen camino
Buenas!


Para recorrer los elementos de un TStringList puedes utilizarel siguiente código:

Código Delphi [-]
var datos : TStringList;
     i : Integer;
     elemento : String;
begin
   for i := 0 to datos.count-1 do
   begin
      elemento := datos[i];
       ......
   end;
Edu
Responder Con Cita
  #8  
Antiguo 19-10-2005
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.052
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por epuigdef
El punto catalán se utiliza en una construcción catalana que se llama "l germinada". Palabras como col·legi (colegio) la llevan. Suena com una l más larga, pero sin sonar a ll.
Un saludo
Edu
Todos los días se aprende algo.

Muchas gracias.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 13:01:14.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi