improved TextInputStream
This commit is contained in:
parent
8d829b9690
commit
dd57965556
@ -59,6 +59,7 @@ namespace hgl
|
|||||||
|
|
||||||
ByteOrderMask bom; ///<BOM头
|
ByteOrderMask bom; ///<BOM头
|
||||||
|
|
||||||
|
ByteOrderMask default_bom; ///<缺省BOM,在没有BOM头时使用
|
||||||
ParseCallback *callback; ///<回调函数
|
ParseCallback *callback; ///<回调函数
|
||||||
|
|
||||||
private:
|
private:
|
||||||
@ -75,6 +76,8 @@ namespace hgl
|
|||||||
SAFE_CLEAR_ARRAY(buffer);
|
SAFE_CLEAR_ARRAY(buffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SetDefaultBOM(const ByteOrderMask &bo){default_bom=bo;} ///<设置缺省BOM头}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 运行并解晰文本
|
* 运行并解晰文本
|
||||||
* @param pc 解晰结果回调函数
|
* @param pc 解晰结果回调函数
|
||||||
|
@ -15,6 +15,7 @@ namespace hgl
|
|||||||
stream_size=input_stream->Available();
|
stream_size=input_stream->Available();
|
||||||
|
|
||||||
bom=ByteOrderMask::NONE;
|
bom=ByteOrderMask::NONE;
|
||||||
|
default_bom=ByteOrderMask::UTF8;
|
||||||
callback=nullptr;
|
callback=nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -37,14 +38,19 @@ namespace hgl
|
|||||||
else
|
else
|
||||||
if(*p=='\r')
|
if(*p=='\r')
|
||||||
{
|
{
|
||||||
++p;
|
if(p[1]=='\n')
|
||||||
if(*p=='\n')
|
|
||||||
{
|
{
|
||||||
callback->OnLine(sp,p-sp-1,true);
|
callback->OnLine(sp,p-sp,true);
|
||||||
++line_count;
|
p+=2;
|
||||||
++p;
|
|
||||||
sp=p;
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
callback->OnLine(sp,p-sp,true);
|
||||||
|
++p;
|
||||||
|
}
|
||||||
|
|
||||||
|
++line_count;
|
||||||
|
sp=p;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
++p;
|
++p;
|
||||||
@ -78,6 +84,10 @@ namespace hgl
|
|||||||
|
|
||||||
p+=bfh->size;
|
p+=bfh->size;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
bom=default_bom;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user