public void WriteRecord(BinaryWriter writer) { writer.Write((int)RecordType); writer.Write(Type); writer.Write(HasVariableLabel ? 1 : 0); writer.Write(MissingValueType); writer.Write(PrintFormat?.GetInteger() ?? 0); writer.Write(WriteFormat?.GetInteger() ?? 0); writer.Write(_nameRaw); if (HasVariableLabel) { writer.Write(LabelLength); writer.Write(_labelRaw); } if (MissingValueType != 0) { for (int i = 0; i < MissingValues.Count && i < _missingValueCount; i++) { writer.Write(MissingValues[i]); } } }
private void ProcessByIndividual(WriteFormat method, List <TbTitle> titles, List <TbTitleInfo> titleInfos, string filename) { var aaa = Encoding.Default; string nPath = Path.Combine(mOutputPath, filename); using (FileStream fs = new FileStream(nPath, FileMode.Create)) using (StreamWriter sw = new StreamWriter(fs, Encoding.UTF8)) { method.WriteHead(sw, filename); var queue = from titleInfo in titleInfos orderby Convert.ToInt32(titleInfo.str[3]), titleInfo.str[2] select titleInfo; foreach (var titleInfo in queue) { method.WriteBegin(sw); var title = titles.Find(o => o.id == titleInfo.str[0]); method.WriteNumber(sw, titleInfo.str[3]); string name = ""; if (titleInfo.str[2] != "0") { name = (titleInfo.str[2] == "1") ? "哈露" : (titleInfo.str[2] == "2") ? "歐文" : (titleInfo.str[2] == "3") ? "莉莉" : (titleInfo.str[2] == "4") ? "金" : (titleInfo.str[2] == "5") ? "史黛菈" : (titleInfo.str[2] == "6") ? "伊莉絲" : "琪"; } method.WriteCharacter(sw, name); method.WriteTitle(sw, title.str[0]); method.WriteDescription(sw, title.str[1]); method.WriteObtain(sw, title.str[2]); if (titleInfo.str[12] == "0" && titleInfo.str[13] == "0" && titleInfo.str[14] == "0" && titleInfo.str[15] == "0" && titleInfo.str[16] == "0") { method.WriteNoEffect(sw); } else { List <string> effects = new List <string>(); if (titleInfo.str[12] != "0") { effects.Add($"{GetValue(titleInfo.str[12])}:{titleInfo.str[17]}"); } if (titleInfo.str[13] != "0") { effects.Add($"{GetValue(titleInfo.str[13])}:{titleInfo.str[18]}"); } if (titleInfo.str[14] != "0") { effects.Add($"{GetValue(titleInfo.str[14])}:{titleInfo.str[19]}"); } if (titleInfo.str[15] != "0") { effects.Add($"{GetValue(titleInfo.str[15])}:{titleInfo.str[20]}"); } if (titleInfo.str[16] != "0") { effects.Add($"{GetValue(titleInfo.str[16])}:{titleInfo.str[21]}"); } method.WriteEffect(sw, effects.ToArray()); } method.WriteEnd(sw); } method.WriteTail(sw); } }
public void Log(string logString, Level logLevel, DateTime dateTime, WriteFormat format) { XmlDocument xml = new XmlDocument(); xml.Load("App1.config"); string[] readFromXML = new string[3]; int i = 0; foreach (XmlElement element in xml.GetElementsByTagName("add")) { if (element.Attributes["key"] == null) { continue; } readFromXML[i] = element.Attributes["value"].Value; i++; } Level logg = new Level(); switch (readFromXML[1]) { case "warning": logg = Level.warning; break; case "debug": logg = Level.debug; break; case "error": logg = Level.error; break; case "info": logg = Level.info; break; default: break; } string message = ""; switch (logg) { case Level.warning: message = LogWarn(logString); Console.WriteLine(LogWarn(logString)); break; case Level.debug: message = LogDebug(logString); Console.WriteLine(LogDebug(logString)); break; case Level.error: message = LogError(logString); Console.WriteLine(LogError(logString)); break; case Level.info: message = LogInfo(logString); Console.WriteLine(LogInfo(logString)); break; default: Console.WriteLine("change config file"); break; } WriteFormat wf = new WriteFormat(); XMLLogger xmlLogger = new XMLLogger(); JSONLogger jsonLogger = new JSONLogger(); switch (readFromXML[2]) { case "plain": wf = WriteFormat.plain; break; case "xml": wf = WriteFormat.xml; break; case "json": wf = WriteFormat.json; break; default: break; } switch (wf) { case WriteFormat.json: jsonLogger.WriteLog(message, readFromXML[0]); break; case WriteFormat.plain: WriteLog(message, readFromXML[0]); break; case WriteFormat.xml: xmlLogger.WriteLog(message, readFromXML[0]); break; default: break; } }