home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / PASCAL / TOOL_INC.ZIP / REMPATH.INC < prev    next >
Encoding:
Text File  |  1988-01-29  |  1.8 KB  |  111 lines

  1.  
  2. (*
  3.  * remove_path - remove pathname prefix from a filename
  4.  *
  5.  *)
  6.  
  7. function remove_path(name: anystring): anystring;
  8. var
  9.    n: anystring;
  10.    i: integer;
  11. begin
  12.    n := '';
  13.    for i := 1 to length(name) do
  14.       case name[i] of
  15.          ':','\':
  16.             n := ''
  17.          else
  18.             n := n + name[i];
  19.       end;
  20.  
  21.    remove_path := n;
  22. end;
  23.  
  24.  
  25. (*
  26.  * path_only - return pathname prefix from a filename
  27.  *
  28.  *)
  29.  
  30. function path_only(name: anystring): anystring;
  31. var
  32.    n: anystring;
  33.    i: integer;
  34.  
  35. begin
  36.  
  37.    {scan backwards looking for the last : or \ in the pathname}
  38.    n := name;
  39.    i := length(n);
  40.    while (i > 0) and (name[i] <> ':') and (name[i] <> '\') do
  41.       dec(i);
  42.  
  43.    n[0] := chr(i);
  44.  
  45.    {add a trailing "\" if needed}
  46.    if (length(n) > 2) and (n[length(n)] <> '\') then
  47.       n := n + '\';
  48.  
  49.    path_only := n;
  50. end;
  51.  
  52.  
  53. (*
  54.  * remove_ext - remove filename .ext
  55.  *
  56.  *)
  57.  
  58. function remove_ext(name: anystring): anystring;
  59. var
  60.    n: anystring;
  61.    i: integer;
  62. begin
  63.    n := name;
  64.    i := length(n);
  65.    while (i > 0) and (name[i] <> '.') do
  66.       dec(i);
  67.  
  68.    if name[i] = '.' then
  69.       n[0] := chr(i-1);
  70.  
  71.    remove_ext := n;
  72. end;
  73.  
  74.  
  75. (*
  76.  * ext_only - return only the ext portion of a filename
  77.  *
  78.  *)
  79.  
  80. function ext_only(name: anystring): anystring;
  81. var
  82.    i: integer;
  83. begin
  84.    i := length(name);
  85.    while (i > 0) and (name[i] <> '.') do
  86.       dec(i);
  87.  
  88.    if name[i] = '.' then
  89.       ext_only := copy(name,i+1,99)
  90.    else
  91.       ext_only := '';
  92. end;
  93.  
  94. (*
  95.  * dir_only - return the directory portion of a filename.  same
  96.  *            as path_only except without the trailing "\".
  97.  *)
  98.  
  99. function dir_only(name: anystring): anystring;
  100. var
  101.    n: anystring;
  102.  
  103. begin
  104.    n := path_only(name);
  105.    if n[length(n)] = '\' then
  106.       dec(n[0]);
  107.  
  108.    dir_only := n;
  109. end;
  110.  
  111.