// ======================================================================== // Copyright 2006 - Volian Enterprises, Inc. All rights reserved. // Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE // ------------------------------------------------------------------------ // $Workfile: $ $Revision: $ // $Author: $ $Date: $ // // $History: $ // ======================================================================== using System; using System.Collections.Generic; using System.Text; using System.Text.RegularExpressions; namespace DataLoader { public static class TextConvert { static TextConvert() { BuildDictionarySeq(); BuildDictionaryText(); } private static Dictionary dicChar; public static void BuildDictionarySeq() { dicChar = new Dictionary(); for (int i = 0; i < 128; i++) dicChar[i] = i; dicChar[199] = 128; dicChar[252] = 129; dicChar[233] = 130; dicChar[226] = 131; dicChar[228] = 132; dicChar[224] = 133; dicChar[229] = 134; dicChar[231] = 135; dicChar[234] = 136; dicChar[235] = 137; dicChar[232] = 138; dicChar[239] = 139; dicChar[238] = 140; dicChar[236] = 141; dicChar[196] = 142; dicChar[197] = 143; dicChar[201] = 144; dicChar[230] = 145; dicChar[198] = 146; dicChar[244] = 147; dicChar[246] = 148; dicChar[242] = 149; dicChar[251] = 150; dicChar[249] = 151; dicChar[255] = 152; dicChar[214] = 153; dicChar[220] = 154; dicChar[162] = 155; dicChar[163] = 156; dicChar[165] = 157; dicChar[8359] = 158; dicChar[402] = 159; dicChar[225] = 160; dicChar[237] = 161; dicChar[243] = 162; dicChar[250] = 163; dicChar[241] = 164; dicChar[209] = 165; dicChar[170] = 166; dicChar[186] = 167; dicChar[191] = 168; dicChar[8976] = 169; dicChar[172] = 170; dicChar[189] = 171; dicChar[188] = 172; dicChar[161] = 173; dicChar[171] = 174; dicChar[187] = 175; dicChar[9617] = 176; dicChar[9618] = 177; dicChar[9619] = 178; dicChar[9474] = 179; dicChar[9508] = 180; dicChar[9569] = 181; dicChar[9570] = 182; dicChar[9558] = 183; dicChar[9557] = 184; dicChar[9571] = 185; dicChar[9553] = 186; dicChar[9559] = 187; dicChar[9565] = 188; dicChar[9564] = 189; dicChar[9563] = 190; dicChar[9488] = 191; dicChar[9492] = 192; dicChar[9524] = 193; dicChar[9516] = 194; dicChar[9500] = 195; dicChar[9472] = 196; dicChar[9532] = 197; dicChar[9566] = 198; dicChar[9567] = 199; dicChar[9562] = 200; dicChar[9556] = 201; dicChar[9577] = 202; dicChar[9574] = 203; dicChar[9568] = 204; dicChar[9552] = 205; dicChar[9580] = 206; dicChar[9575] = 207; dicChar[9576] = 208; dicChar[9572] = 209; dicChar[9573] = 210; dicChar[9561] = 211; dicChar[9560] = 212; dicChar[9554] = 213; dicChar[9555] = 214; dicChar[9579] = 215; dicChar[9578] = 216; dicChar[9496] = 217; dicChar[9484] = 218; dicChar[9608] = 219; dicChar[9604] = 220; dicChar[9612] = 221; dicChar[9616] = 222; dicChar[9600] = 223; dicChar[945] = 224; dicChar[223] = 225; dicChar[915] = 226; dicChar[960] = 227; dicChar[931] = 228; dicChar[963] = 229; dicChar[181] = 230; dicChar[964] = 231; dicChar[934] = 232; dicChar[920] = 233; dicChar[937] = 234; dicChar[948] = 235; dicChar[8734] = 236; dicChar[966] = 237; dicChar[949] = 238; dicChar[8745] = 239; dicChar[8801] = 240; dicChar[177] = 241; dicChar[8805] = 242; dicChar[8804] = 243; dicChar[8992] = 244; dicChar[8993] = 245; dicChar[247] = 246; dicChar[8776] = 247; dicChar[176] = 248; dicChar[8729] = 249; dicChar[183] = 250; dicChar[8730] = 251; dicChar[8319] = 252; dicChar[178] = 253; dicChar[9632] = 254; dicChar[160] = 255; } public static string ConvertSeq(string s1) { Encoding Eibm437 = Encoding.GetEncoding(437); Encoding Eunicode = Encoding.Unicode; Decoder d = Eibm437.GetDecoder(); Byte[] bs1 = Eunicode.GetBytes(s1); Byte[] bs2 = Encoding.Convert(Eunicode, Eibm437, bs1); char[] cs2 = new char[Eibm437.GetCharCount(bs2)]; for (int i = 0; i < cs2.Length; i++) cs2[i] = (char)bs2[i]; return new string(cs2); } public static Regex Reg2; public static void BuildDictionaryText() { dicChar = new Dictionary(); dicChar[966] = 216; dicChar[201] = 274; dicChar[127] = 916; dicChar[964] = 947; dicChar[920] = 952; dicChar[915] = 961; dicChar[191] = 964; dicChar[8801] = 8773; dicChar[8734] = 8857; dicChar[7] = 9679; dicChar[8976] = 9830; char[] creg = new char[dicChar.Count]; int i = 0; foreach (int ic in dicChar.Keys) { creg[i] = (char)ic; i++; } Reg2 = new Regex("[" + new string(creg) + "]"); } public static string ReplaceChars(Match m) { char[] cs = m.Value.ToCharArray(); for (int i = 0; i < cs.Length; i++) { if (dicChar.ContainsKey((int)(cs[i]))) { int iKey = (int)cs[i]; int iValue = dicChar[iKey]; cs[i] = (char)iValue; } } return new string(cs); } public static string ConvertText(string s1) { string s2 = Reg2.Replace(s1, new MatchEvaluator(ReplaceChars)); return s2; } } }