總網頁瀏覽量

2014年11月2日 星期日

Location計算方法

1. 日誌之外列 location另外算法
讀取到中斷的列不重讀

int oldonelinesize =0;
bool isForwardPart =true;
遇到</log> 讓 isForwardPart=true;  這是考慮到像上次那樣破碎日誌

if(isFullProcessLog ==false && onelinelog.length >  oldonelinesize)
{
//紀錄虛線完整的行是多少字元
 oldonelinesize = onelinelog.length;
}

//該行為虛線且沒有讀取完整
if(isFullProcessLog ==false  && onelinelog.length < oldonelinelogsize)
{
//該行前半部分,不算換行字元
if(isForwardPart==true)
{
location=location+onelinelog.length
isForwardPart=false;

}
//非前半部分,算上換行字元
if(isForwardPart==false)
{
location=location+onelinelog.length+newline
isForwardPart=true;
}

}
else
{
_location=_location+oneline.length+newline
}

2.
有些LogType是以
<!--------------------------->隔開
所以應該要在判斷破裂tag加上 && isProcessFullLog==true



總之虛線行只要是破裂的就不要重讀了
這樣計算方式主要建立在log沒破裂的時候
如果Log有破裂狀況會導致計算location歪掉


另外INIManager要改為非static