Utilizamos cookies propias y de terceros. [Más información sobre las cookies].
Política de cookies
Proyecto AjpdSoft

· Inicio
· Buscar
· Contactar
· Cookies
· Descargas
· Foros
· Historia
· Nosotros
· Temas
· Top 10
· Trucos
· Tutoriales
· Wiki
Función para separar las subcarpetas de una ruta - Delphi
Lenguaje de programación Borland Delphi

Os mostramos una función para Delphi que separa todas las subcarpetas de una ruta dada. Por ejemplo, para la ruta:

c:\window\system32\drivers

devolverá (en un TStringList):

windows
system32
drivers


El código fuente / source code de la función en Delphi:

function separaCarpetas (ruta : string) : TStringList;
var
  lista : TStringList;
  i, j : integer;
  carpeta : string;
begin
  lista := TStringList.Create;
  carpeta := '';
  for i := 0 to length(ruta) do
  begin
    //si es ruta UNC (Universal Naming Convention -
    //notación que identifica recursos de red usando
    //nombre del servidor y nombre del recurso compartido)
    if (Pos('\\', ruta) > 0) then
    begin
      reemplazarTexto (ruta, '\\', ':\');
    end;

    if (ruta[i] = '\') or (ruta [i] = '/') then
    begin
      carpeta := '';
      for j := i + 1 to length(ruta) do
      begin
        if (ruta[j] = '\') or (ruta [j] = '/') then
          break
        else
          carpeta := carpeta + ruta[j];
      end;
      if carpeta <> '' then
        lista.Add(carpeta);
    end;
  end;
  Result := lista;
end;


Ejemplo de uso:

...

var
  i : integer;
  listaCarp : TStringList;
begin
  for i := 0 to lsCopiaCarpetas.Count - 1 do
  begin
    listaCarp := separaCarpetas(lsCopiaCarpetas.Items[i]);
    carpetas.Lines := listaCarp;
  end;

....




Publicado el: 2007-08-23

Visita nuestro nuevo sitio web con programas y contenidos actualizados: Proyecto A