Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Bibliotecas de código fuente > [GH Freebrary]
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-03-2013
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Función ghDir

Extrae el lado izquierdo de una ruta hasta una de sus partes padre.

Unidad

GHFRTL

Declaración
Código Delphi [-]
  { Directory }
  Function ghDir (Const Path :String; Const UpLevels :Integer = 1;
    Const APathDelim :Char = PathDelim; Const ConsiderRoot :Boolean = True)
    :String; Overload;

  { Directory }
  Function ghDir (Const Path :String; Const UpLevels :Integer;
    Const ConsiderRoot :Boolean) :String; Overload;

  { Directory }
  Function ghDir (Const Path :String; Const APathDelim :Char;
    Const ConsiderRoot :Boolean = True) :String; Overload;

  { Directory }
  Function ghDir (Const Path :String; Const ConsiderRoot :Boolean) :String;
    Overload;
Descripción

La función ghDir toma una cadena de caracteres seccionada en partes delimitadas por un carácter especial —comúnmente una ruta de archivo o directorio— , y devuelve ésta pero truncada hasta una de esas partes. UpLevels señala cuántos niveles debe "subir" para obtener la subcadena a devolver. APathDelim indica cuál es el carácter que separa las distintas partes de la cadena. ConsiderRoot determina si el resultado debe o no debe conservar la barra diagonal inversa en su extremo derecho cuando se trate de la raíz de una unidad de disco, o si la raíz de una ruta UNC puede o no puede ser fraccionada.

Parámetros

Path — Una cadena de caracteres que exprese una ruta de archivo, directorio, página Web, llave del registro, elemento XML o algo similar. Si es una cadena vacía, el resultado también lo será.

UpLevels — Indica la cantidad de partes de la ruta Path que la función contará de derecha a izquierda para determinar el final de la subruta a devolver. Debe ser un entero menor a la cantidad de partes que componen la ruta Path, o de lo contrario ghDir devolverá una cadena vacía. Si es menor a 1, la función devolverá la misma cadena de caracteres contenida en Path, pero quitando de su extremo derecho el carácter APathDelim en caso de tenerlo ahí y de que no represente el directorio raíz de una unidad de disco, siempre que esto último deba ser tomado en cuenta (ver descripción de ConsiderRoot). Este parámetro puede omitirse, su valor predeterminado es 1.

APathDelim — Indica cuál es el carácter usado en la ruta Path para separación de sus partes. Si Path no contiene ese carácter, se entenderá que la ruta es de una sola parte. Este parámetro puede omitirse, su valor predeterminado es el de la constante nativa PathDelim, la barra diagonal inversa que en Windows se emplea como delimitador de directorios ('\').

ConsiderRoot — Este parámetro se refiere a la "raíz" de una ruta local o de red y sólo tiene efecto si APathDelim es igual a la constante nativa PathDelim. Cuando es True, ghDir trata de manera especial a la cadena de caracteres Path si esta inicia especificando una unidad de disco (X:\...) o un recurso de red en formato UNC (\\XXX\XXX\...). Si la ruta comienza con una unidad de disco y la función va a devolver solamente esa primera parte, se incluirá la barra diagonal inversa en el resultado ('C:\' en lugar de 'C:'). Si la ruta es de tipo UNC, ghDir considerará indivisible todo lo que esté antes de la cuarta barra diagonal inversa ('\\Server\C\Docs' podrá dividirse en sólo dos partes: '\\Server\C' y 'Docs'). Lo anterior permite obtener rutas de directorio sintácticamente válidas para el sistema de archivos de Windows, pero si ConsiderRoot es False o el parámetro APathDelim no es la barra diagonal inversa, ghDir no tendrá miramiento especial sobre la raíz de la ruta dada. Este parámetro puede omitirse, su valor predeterminado es True.

Ejemplos
Código Delphi [-]
  S := ghDir ('C:\Run\Lola\Run\Readme.txt');
  // S = 'C:\Run\Lola\Run'

  S := ghDir ('C:\Run\Lola\Run\Readme.txt', 2);
  // S = 'C:\Run\Lola'

  S := ghDir ('C:\Run\Lola\Run\Readme.txt', 3);
  // S = 'C:\Run'

  S := ghDir ('C:\Run\Lola\Run\Readme.txt', 4);
  // S = 'C:\'

  S := ghDir ('C:\Run\Lola\Run\Readme.txt', 4, '\', False);
  // S = 'C:'

  S := ghDir ('C:\Run\Lola\Run\Readme.txt', 5);
  // S = ''

  S := ghDir ('C:\Mr\Smith\Goes\To\Washington');
  // S = 'C:\Mr\Smith\Goes\To'

  S := ghDir ('C:\Mr\Smith\Goes\To\Washington\');
  // S = 'C:\Mr\Smith\Goes\To'

  S := ghDir ('C:\Mr\Smith\Goes\To\Washington\', 2);
  // S = 'C:\Mr\Smith\Goes'

  S := ghDir ('Django/Unchained', '/');
  // S = 'Django'

  S := ghDir ('The/Awful/Truth', '/');
  // S = 'The/Awful'

  S := ghDir ('The/Awful/Truth', 2, '/');
  // S = 'The'

  S := ghDir ('Black Swan');
  // S = ''

  S := ghDir ('Black Swan', 0);
  // S = 'Black Swan'

  S := ghDir ('Cinema\Paradiso');
  // S = 'Cinema'

  S := ghDir ('Cinema\Paradiso', 0);
  // S = 'Cinema\Paradiso'

  S := ghDir ('Cinema\Paradiso', -8);
  // S = 'Cinema\Paradiso'

  S := ghDir ('C:\Le Havre\', 0);
  // S = 'C:\Le Havre'

  S := ghDir ('C:\Le Havre\');
  // S = 'C:\'

  S := ghDir ('C:\Le Havre');
  // S = 'C:\'

  S := ghDir ('C:\Le Havre', False);
  // S = 'C:'

  S := ghDir ('r:\d:\w:');
  // S = 'r:\d:'

  S := ghDir ('r:\d:\w:', 2);
  // S = 'r:\'

  S := ghDir ('r:\d:\w:', 2, False);
  // S = 'r:'

  S := ghDir ('\\Three\Colors\Blue');
  // S = '\\Three\Colors'

  S := ghDir ('\\Three\Colors\Blue', 2);
  // S = ''

  S := ghDir ('\\Three\Colors\Blue', 2, False);
  // S = '\\Three'

  S := ghDir ('\\Three\Colors\Blue', 3, False);
  // S = '\'

  S := ghDir ('\\Three\Colors\', 0);
  // S = '\\Three\Colors'

  S := ghDir ('C:\', 0);
  // S = 'C:\'

  S := ghDir ('');
  // S = ''

Última edición por Al González fecha: 07-10-2013 a las 21:37:40.
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Función javascript que llama a otra función javascript en otra página jandroruiz HTML, Javascript y otros 4 28-02-2013 11:38:00
Función o q? Veanny Internet 2 21-02-2008 21:43:40
Funcion fafita Varios 7 25-01-2008 16:03:40
Funcíon % de CPU jorgegetafe Varios 0 03-11-2007 17:17:54
La función Ord() soul6301 Varios 2 27-06-2004 01:43:17


La franja horaria es GMT +2. Ahora son las 04:44:31.


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