哪位高手能帮小弟我分析一下这段代码的语句是什么意思

谁能帮我分析一下这段代码的语句是什么意思
一个MFC数据采集程序中,有一个DataRecord类,里面有这个函数:

/*
功能:读取文件行
参数:

返回值:新的一行的有效字符的开始
*/
char * CDataRecord::getLine()
{
int index = 0;
int length = 0;

while(1)
{
if( !fgets(lineBuffer,DR_LINE_BUFFER_SIZE,dataFile) )
return NULL;

for(length = strlen(lineBuffer), index = 0;lineBuffer[index] == ' ';index++);

if( (index >= length - 1) || (lineBuffer[index] == '#') )
continue;

return (&lineBuffer[index]);
}

}

我想知道这个函数里的每一句话是什么意思,他既然是读取文件行,并且返回值是新的一行的开始,那为什么不直接用fgets函数呢,还要用这么多的代码?
MFC 文件 Buffer

------解决方案--------------------
为的是过滤掉一些字符,比如空格,‘#’等
------解决方案--------------------

while(1)
{
if( !fgets(lineBuffer,DR_LINE_BUFFER_SIZE,dataFile) ) //读取每一行
return NULL;

for(length = strlen(lineBuffer), index = 0;lineBuffer[index] == ' ';index++); //分析每一行的每一个字节

if( (index >= length - 1) 
------解决方案--------------------
 (lineBuffer[index] == '#') ) //如果找到非#或者最后一个字符就返回位置
continue;

return (&lineBuffer[index]);
}