// Methods public FFXIVLog(FFXIVProcess ffxiv, int messageId, string who, string message) { FFXIV = ffxiv; MessageTypeID = messageId; Who = who; Message = message; if (string.IsNullOrEmpty(Who)) Who = string.Empty; if (string.IsNullOrEmpty(Message)) Message = string.Empty; }
/// <summary> /// バイナリデータより指定範囲のログを列挙します。 /// </summary> /// <param name="logData"></param> /// <param name="enc"></param> /// <returns></returns> public static IEnumerable<FFXIVLog> GetLogs(byte[] logData, Encoding enc, FFXIVProcess ff14) { var buf = logData .SkipWhile(a => a != 0x30) .ToArray(); var input = enc.GetString(TABConvertor.TabEscape(buf)); var matchs = regex.Matches(input); var strArray = regex.Split(input); for (var j = 1; j < strArray.Length; j++) { var strArray2 = strArray[j].Split(new char[] { ':' }, 2, StringSplitOptions.None); var strType = matchs[j - 1].Value.TrimEnd(new char[] { ':' }); var numType = int.Parse(strType, NumberStyles.AllowHexSpecifier); var strWho = strArray2[0].Replace("\0", "").Trim(); var strMes = strArray2[1].Replace("\0", ""); var item = new FFXIVLog(ff14, numType, strWho, strMes); yield return item; } }
private static FFXIVLog Internal(FFXIVProcess ff14, FFXILogMessageType tp, string message) { return new FFXIVLog(ff14, (int)tp, "", message); }
/// <summary> /// コンストラクタ。 /// </summary> /// <param name="_ffxiv"></param> public LogStatusSearcher(FFXIVProcess _ffxiv) { this.ffxiv = _ffxiv; }
// Methods public FFXIVLogStatus(FFXIVProcess _ffxiv, int entry) { FFXIV = _ffxiv; Entry = entry; }