WIP
DirectOutput framework for virtual pinball cabinets WIP
Go to:
Overview 
StringExtensionsx.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 uint ToUInt(this string s)
145  {
146  uint uintegerValue = 0;
147  uint.TryParse(s, out uintegerValue);
148  return uintegerValue;
149  }
150 
155  public static bool IsInteger(this string s)
156  {
157  int dummy;
158  if (s.IsNullOrWhiteSpace()) return false;
159  return int.TryParse(s, out dummy);
160  }
161 
166  public static bool IsUInt(this string s)
167  {
168  uint dummy;
169  if (s.IsNullOrWhiteSpace()) return false;
170  return uint.TryParse(s, out dummy);
171  }
172 
173 
178  public static bool IsNullOrEmpty(this string s)
179  {
180  return string.IsNullOrEmpty(s);
181  }
182 
187  public static bool IsNullOrWhiteSpace(this string s)
188  {
189  return string.IsNullOrWhiteSpace(s);
190  }
191 
192 
193 
199  public static string Build(this string s, object arg0)
200  {
201  if (s == null) { return ""; }
202  return string.Format(s, arg0);
203  }
204 
211  public static string Build(this string s, object arg0, object arg1)
212  {
213  if (s == null) { return ""; }
214  return string.Format(s, arg0, arg1);
215  }
216 
224  public static string Build(this string s, object arg0, object arg1, object arg2)
225  {
226  if (s == null) { return ""; }
227  return string.Format(s, arg0, arg1, arg2);
228  }
229 
235  public static string Build(this string s, object[] args)
236  {
237  if (s == null) { return ""; }
238  return string.Format(s, args);
239  }
240 
241 
242 
243 
249  public static bool IsEmail(this string s)
250  {
251  Regex MailCheck = new Regex(@"\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*");
252  return MailCheck.IsMatch(s);
253  }
254 
260  public static void WriteToFile(this string s, string FileName)
261  {
262  s.WriteToFile(FileName, false);
263  }
264 
270  public static void WriteToFile(this string s, string FileName, bool Append)
271  {
272  TextWriter tw = null;
273  try
274  {
275  tw = new StreamWriter(FileName, Append);
276  tw.Write(s);
277  }
278  catch (Exception e)
279  {
280 
281  if (tw != null)
282  {
283  tw.Close();
284  }
285  throw e;
286  }
287 
288  tw.Close();
289 
290 
291  }
292 
293 
294 
303  static public string Replace(this string originalString, string oldValue, string newValue, StringComparison comparisonType)
304  {
305  StringBuilder sb = new StringBuilder();
306 
307  int previousIndex = 0;
308  int index = originalString.IndexOf(oldValue, comparisonType);
309  while (index != -1)
310  {
311  sb.Append(originalString.Substring(previousIndex, index - previousIndex));
312  sb.Append(newValue);
313  index += oldValue.Length;
314 
315  previousIndex = index;
316  index = originalString.IndexOf(oldValue, index, comparisonType);
317  }
318  sb.Append(originalString.Substring(previousIndex));
319 
320  return sb.ToString();
321 
322  }
323 
328  static public byte[] GetBytes(this string str)
329  {
330  byte[] bytes = new byte[str.Length * sizeof(char)];
331  System.Buffer.BlockCopy(str.ToCharArray(), 0, bytes, 0, bytes.Length);
332  return bytes;
333  }
334 
335 }
336 
337 
338 
339 
340 
341 
Animation steps from left to right through the source image