-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathstringarray.pas
More file actions
71 lines (58 loc) · 2.1 KB
/
stringarray.pas
File metadata and controls
71 lines (58 loc) · 2.1 KB
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
70
71
{
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; version 2 of the License.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
}
// Copyright (c) 2010 - J. Aldo G. de Freitas Junior
{$mode objfpc}
{$H+}
Unit
StringArray;
Interface
Type
TStringArray = Array Of String;
Procedure AppendString(Var aStrings : TStringArray; Const aString : String);
Function ConcatenateStrings(Const aStrings : TStringArray; Const aSeparator : String = ', '; Const aLastSeparator : String = ', '): String;
Function IsMember(Const aStringArray : TStringArray; Const aString : String): Boolean;
Procedure AddNewString(Var aStrings : TStringArray; Const aString : String);
Implementation
Procedure AppendString(Var aStrings : TStringArray; Const aString : String);
Begin
SetLength(aStrings, Length(aStrings) + 1);
aStrings[High(aStrings)] := aString;
End;
Function ConcatenateStrings(Const aStrings : TStringArray; Const aSeparator : String = ', '; Const aLastSeparator : String = ', '): String;
Var
lCtrl : Integer;
Begin
Result := '';
For lCtrl := Low(aStrings) To High(aStrings) Do
If lCtrl < (High(aStrings) - 1) Then
Result := Result + aStrings[lCtrl] + aSeparator
Else If lCtrl < High(aStrings) Then
Result := Result + aStrings[lCtrl] + aLastSeparator
Else
Result := Result + aStrings[lCtrl];
End;
Function IsMember(Const aStringArray : TStringArray; Const aString : String): Boolean;
Var
lCtrl : Integer;
Begin
Result := False;
For lCtrl := Low(aStringArray) To High(aStringArray) Do
If aStringArray[lCtrl] = aString Then
Begin
Result := True;
Break;
End;
End;
Procedure AddNewString(Var aStrings : TStringArray; Const aString : String);
Begin
If Not IsMember(aStrings, aString) Then
AppendString(aSTrings, aString);
End;
End.