File: Support.pas

package info (click to toggle)
mysql-gui-tools 5.0r12-1
  • links: PTS
  • area: main
  • in suites: lenny
  • size: 105,540 kB
  • ctags: 50,897
  • sloc: sql: 348,439; pascal: 285,780; cpp: 94,578; ansic: 90,768; objc: 33,761; sh: 25,629; xml: 10,924; yacc: 10,755; java: 9,986; php: 2,806; python: 2,068; makefile: 1,945; perl: 3
file content (69 lines) | stat: -rw-r--r-- 1,717 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
unit Support;

interface

function DataPath(const Filename: string): string;

//----------------------------------------------------------------------------------------------------------------------

implementation

uses
  Classes, SysUtils;
  
var
  Pathes: TStringList;

//----------------------------------------------------------------------------------------------------------------------

function DataPath(const Filename: string): string;

// Searches through all defined data pathes and tries to find the given file in them. If found the full path including
// the file name is returned, otherwise an empty string.

var
  I: Integer;

begin
  Result := '';
  for I := 0 to Pathes.Count - 1 do
    if FileExists(Pathes[I] + Filename) then
    begin
      Result := Pathes[I] + Filename;
      Break;
    end;

  // As a fall back we use the apps dir.
  if Result = '' then
    Result := ExtractFilePath(ParamStr(0)) + Filename;
end;

//----------------------------------------------------------------------------------------------------------------------

procedure ParseCommandLine;

var
  I: Integer;
  Parameter: string;

begin
  Pathes := TStringList.Create;

  for I := 1 to ParamCount do
  begin
    Parameter := ParamStr(I);
    if Pos('--data=', Parameter) = 1 then
    begin
      // Found a data path parameter. Extract the path and store it.
      Pathes.Add(IncludeTrailingPathDelimiter(Copy(Parameter, 8, MaxInt)));
    end;
  end;
end;

//----------------------------------------------------------------------------------------------------------------------

initialization
  ParseCommandLine;
finalization
  Pathes.Free;
end.