(DISTFILES): Comment out a few missing files.
[mono-project.git] / mcs / class / ByteFX.Data / Common / StringUtility.cs
blobc8264f941f9ceb8e87a9c9605693cd800729da19
1 // ByteFX.Data data access components for .Net
2 // Copyright (C) 2002-2003 ByteFX, Inc.
3 //
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.
8 //
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.
13 //
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
18 using System;
19 using System.Text;
20 using System.Collections;
21 using System.Collections.Specialized;
23 namespace ByteFX.Data.Common
25 /// <summary>
26 /// Summary description for StringUtility.
27 /// </summary>
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)
52 quote_open = c;
53 else if (quote_open == c)
54 quote_open = Char.MinValue;
55 sb.Append(c);
57 else
58 sb.Append( c );
61 if (sb.Length > 0)
62 strings.Add( sb.ToString());
64 return (string[])strings.ToArray(typeof(string));