1 // ByteFX.Data data access components for .Net
2 // Copyright (C) 2002-2003 ByteFX, Inc.
4 // This library is free software; you can redistribute it and/or
5 // modify it under the terms of the GNU Lesser General Public
6 // License as published by the Free Software Foundation; either
7 // version 2.1 of the License, or (at your option) any later version.
9 // This library is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 // Lesser General Public License for more details.
14 // You should have received a copy of the GNU Lesser General Public
15 // License along with this library; if not, write to the Free Software
16 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 using System
.Collections
;
21 using System
.Collections
.Specialized
;
23 namespace ByteFX
.Data
.Common
26 /// Summary description for StringUtility.
28 public class StringUtility
30 public StringUtility()
34 public static string[] Split( string src
, char delimiter
, params char[] quotedelims
)
36 ArrayList strings
= new ArrayList();
37 StringBuilder sb
= new StringBuilder();
38 ArrayList ar
= new ArrayList(quotedelims
);
39 char quote_open
= Char
.MinValue
;
41 foreach (char c
in src
)
43 if (c
== delimiter
&& quote_open
== Char
.MinValue
)
45 strings
.Add( sb
.ToString() );
46 sb
.Remove( 0, sb
.Length
);
49 else if (ar
.Contains(c
))
51 if (quote_open
== Char
.MinValue
)
53 else if (quote_open
== c
)
54 quote_open
= Char
.MinValue
;
62 strings
.Add( sb
.ToString());
64 return (string[])strings
.ToArray(typeof(string));