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