DirectOutputR1
DirectOutput framework R1 for virtual pinball cabinets.
Go to:
Overview 
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Properties Events Macros Pages
StringExtensions.cs
Go to the documentation of this file.
1 using System;
2 using System.Collections.Generic;
3 using System.Collections;
4 using System.Linq;
5 using System.Text;
6 using System.Text.RegularExpressions;
7 
8 using System.IO;
9 //using System.Web;
10 
11 
15 public static class StringExtensions
16 {
21  public static int HexToInt(this string s)
22  {
23  return int.Parse(s, System.Globalization.NumberStyles.HexNumber);
24  }
29  public static int HexToByte(this string s)
30  {
31  return byte.Parse(s, System.Globalization.NumberStyles.HexNumber);
32  }
37  public static bool IsHexString(this string s)
38  {
39  return s.IsHexString(0, s.Length);
40  }
41 
49  public static bool IsHexString(this string s, int startindex)
50  {
51  return s.IsHexString(startindex, s.Length - startindex);
52  }
53 
62  public static bool IsHexString(this string s, int startindex, int length)
63  {
64  if (string.IsNullOrWhiteSpace(s)) return false;
65 
66  if (startindex + length > s.Length) return false;
67 
68  return System.Text.RegularExpressions.Regex.IsMatch(s.Substring(startindex,length), @"\A\b[0-9a-fA-F]+\b\Z");
69  }
70 
71 
72 
73 
78  public static byte[] ToByteArray(this string s)
79  {
80  System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();
81  return encoding.GetBytes(s);
82  }
83 
88  public static StringBuilder ToStringBuilder(this string s)
89  {
90  if (string.IsNullOrEmpty(s))
91  {
92  return new StringBuilder("");
93  }
94  return new StringBuilder(s);
95  }
96 
102  public static string Left(this string s, int length)
103  {
104  return s.Substring(0, length);
105  }
106 
112  public static string Right(this string s, int length)
113  {
114  return s.Substring(s.Length - length, length);
115  }
116 
124  public static string Mid(this string s, int startIndex, int length)
125  {
126  return s.Substring(startIndex, length);
127  }
128 
133  public static int ToInteger(this string s)
134  {
135  int integerValue = 0;
136  int.TryParse(s, out integerValue);
137  return integerValue;
138  }
139 
144  public static bool IsInteger(this string s)
145  {
146  int dummy;
147  if (s.IsNullOrWhiteSpace()) return false;
148  return int.TryParse(s, out dummy);
149 
150  //Regex regularExpression = new Regex("^-[0-9]+$|^[0-9]+$");
151  //return regularExpression.Match(s).Success;
152  }
153 
158  public static bool IsNullOrEmpty(this string s)
159  {
160  return string.IsNullOrEmpty(s);
161  }
162 
167  public static bool IsNullOrWhiteSpace(this string s)
168  {
169  return string.IsNullOrWhiteSpace(s);
170  }
171 
172 
173 
179  public static string Build(this string s, object arg0)
180  {
181  if (s == null) { return ""; }
182  return string.Format(s, arg0);
183  }
184 
191  public static string Build(this string s, object arg0, object arg1)
192  {
193  if (s == null) { return ""; }
194  return string.Format(s, arg0, arg1);
195  }
196 
204  public static string Build(this string s, object arg0, object arg1, object arg2)
205  {
206  if (s == null) { return ""; }
207  return string.Format(s, arg0, arg1, arg2);
208  }
209 
215  public static string Build(this string s, object[] args)
216  {
217  if (s == null) { return ""; }
218  return string.Format(s, args);
219  }
220 
221 
222 
223 
229  public static bool IsEmail(this string s)
230  {
231  Regex MailCheck = new Regex(@"\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*");
232  return MailCheck.IsMatch(s);
233  }
234 
240  public static void WriteToFile(this string s, string FileName)
241  {
242  s.WriteToFile(FileName, false);
243  }
244 
250  public static void WriteToFile(this string s, string FileName, bool Append)
251  {
252  TextWriter tw = null;
253  try
254  {
255  tw = new StreamWriter(FileName, Append);
256  tw.Write(s);
257  }
258  catch (Exception e)
259  {
260 
261  if (tw != null)
262  {
263  tw.Close();
264  }
265  throw e;
266  }
267 
268  tw.Close();
269 
270 
271  }
272 
273 
274 
283  static public string Replace(this string originalString, string oldValue, string newValue, StringComparison comparisonType)
284  {
285  StringBuilder sb = new StringBuilder();
286 
287  int previousIndex = 0;
288  int index = originalString.IndexOf(oldValue, comparisonType);
289  while (index != -1)
290  {
291  sb.Append(originalString.Substring(previousIndex, index - previousIndex));
292  sb.Append(newValue);
293  index += oldValue.Length;
294 
295  previousIndex = index;
296  index = originalString.IndexOf(oldValue, index, comparisonType);
297  }
298  sb.Append(originalString.Substring(previousIndex));
299 
300  return sb.ToString();
301 
302  }
303 
304 }
305 
306 
307 
308 
309 
310