Utility
using Microsoft.VisualBasic;
using System.Collections;
using System.Data;
using System.IO;
using System.Text;
namespace kCura.WinEDDS
{
public class Utility
{
public static DataTable BuildProxyCharacterDatatable()
{
DataTable dataTable = new DataTable();
dataTable.Columns.Add("Display", typeof(string));
dataTable.Columns.Add("CharValue", typeof(int));
int num = 1;
do {
ArrayList arrayList = new ArrayList();
string value = $"{Strings.ChrW(num)}""{num.ToString().PadLeft(3, '0')}""";
arrayList.Add(value);
char c = Strings.ChrW(num);
arrayList.Add(c);
dataTable.Rows.Add(arrayList.ToArray());
num = checked(num + 1);
} while (num <= 255);
return dataTable;
}
public static string[] GetFieldNamesFromFieldArray(DocumentField[] documentFields)
{
checked {
string[] array = new string[documentFields.Length - 1 + 1];
int num = array.Length - 1;
for (int i = 0; i <= num; i++) {
array[i] = documentFields[i].FieldName;
}
return array;
}
}
public static string GetFilesystemSafeName(string input)
{
return string.Copy(input).Replace("/", " ").Replace(":", " ")
.Replace("?", " ")
.Replace("*", " ")
.Replace("<", " ")
.Replace(">", " ")
.Replace("|", " ")
.Replace("\\", " ")
.Replace("\"", " ");
}
public static DeterminedEncodingStream DetectEncoding(string filename, bool returnEncodingOnly, bool performFileExistsCheck)
{
Encoding determinedEncoding = null;
FileStream fileStream = null;
switch (performFileExistsCheck) {
default:
if (!File.Exists(filename))
break;
goto case false;
case false:
fileStream = new FileStream(filename, FileMode.Open, FileAccess.Read);
if (fileStream.CanSeek) {
byte[] array = new byte[5];
fileStream.Read(array, 0, 4);
if ((array[0] == 239) & (array[1] == 187) & (array[2] == 191))
determinedEncoding = Encoding.UTF8;
if ((array[0] == 255) & (array[1] == 254))
determinedEncoding = Encoding.Unicode;
if ((array[0] == 254) & (array[1] == 255))
determinedEncoding = Encoding.BigEndianUnicode;
bool flag = (array[0] == 0) & (array[1] == 0) & (array[2] == 254) & (array[3] == 255);
bool flag2 = (array[0] == 255) & (array[1] == 254) & (array[2] == 0) & (array[3] == 0);
fileStream.Seek(0, SeekOrigin.Begin);
}
if (returnEncodingOnly)
fileStream.Close();
break;
}
if (!returnEncodingOnly)
return new DeterminedEncodingStream(fileStream, determinedEncoding);
return new DeterminedEncodingStream(determinedEncoding);
}
public static DeterminedEncodingStream DetectEncoding(string filename, bool returnEncodingOnly)
{
return DetectEncoding(filename, returnEncodingOnly, true);
}
}
}