Login
CStdioFile - bad ptr (Visual C++)
612 просмотров
Перейти к просмотру всей ветки
in Antwort scorpi_ 15.05.06 16:13
нет не тайна. Надеюсь я потом не увижу "Ужас."..... и так далее.
ULONGLONG ulLength;
int i,iPosAttr,n;
bool b;
CString csHelp,csHelp2,csHelp3,vs;
ulLength=csString.GetLength();
iPosAttr=i=0;
EmptyAttr();
while (i<=ulLength)
{
csHelp="";
b=FALSE;
while (!(csString.Mid(i,1)==" " || csString.Mid(i,1)=="\t")) //until first blank
{
csHelp+=csString.Mid(i,1);
i++;
if (i>ulLength) break;
if (CheckDefine(csHelp) && iPosAttr==0) {iPosAttr++;b=TRUE;}
if (csString.Mid(i-1,1)=="#")
while ((csString.Mid(i,1)==" " || csString.Mid(i,1)=="\t") && iPosAttr==0)
{
i=UntilSymbol(csString,i);
b=TRUE;
}
while ((csString.Mid(i,1)==" " || csString.Mid(i,1)=="\t") && iPosAttr>=2)
{
if (i>ulLength) break;
i=UntilSymbol(csString,i);
if (csString.Mid(i+1,1)=="=") {csHelp+=csString.Mid(i+1,1);i+=2;}
csHelp2=csString.Mid(i,3);
if ((CheckAttributen(csString.Mid(i,3),"",1)!="ERROR" || CheckAttributen(csString.Mid(i,2),"",1)!="ERROR") && csString.Mid(3,1)!="=")
{
iPosAttr++;i--;break;
}else csHelp+=" ";
b=TRUE;
}
}
if (!b)iPosAttr++;
if (CheckDefine(csHelp) && iPosAttr==1)
m_Attr.csDeclaration=csHelp;
if (iPosAttr==2)
{
m_Attr.csName=csHelp;
}
if (iPosAttr>=3)
{ csHelp2=csHelp3="";
n=0;
while (csHelp.Mid(n,1)!="=" && n<=csHelp.GetLength()) //get name of attribute
{
csHelp2+=csHelp.Mid(n,1);
n++;
}
n++;
while (n<=csHelp.GetLength()) //get value of attribute
{
csHelp3+=csHelp.Mid(n,1);
n++;
}
CheckAttributen(csHelp2.Trim(),csHelp3.Trim(),1);
}
i=UntilSymbol(csString,i);
}
return CheckObjects();
ULONGLONG ulLength;
int i,iPosAttr,n;
bool b;
CString csHelp,csHelp2,csHelp3,vs;
ulLength=csString.GetLength();
iPosAttr=i=0;
EmptyAttr();
while (i<=ulLength)
{
csHelp="";
b=FALSE;
while (!(csString.Mid(i,1)==" " || csString.Mid(i,1)=="\t")) //until first blank
{
csHelp+=csString.Mid(i,1);
i++;
if (i>ulLength) break;
if (CheckDefine(csHelp) && iPosAttr==0) {iPosAttr++;b=TRUE;}
if (csString.Mid(i-1,1)=="#")
while ((csString.Mid(i,1)==" " || csString.Mid(i,1)=="\t") && iPosAttr==0)
{
i=UntilSymbol(csString,i);
b=TRUE;
}
while ((csString.Mid(i,1)==" " || csString.Mid(i,1)=="\t") && iPosAttr>=2)
{
if (i>ulLength) break;
i=UntilSymbol(csString,i);
if (csString.Mid(i+1,1)=="=") {csHelp+=csString.Mid(i+1,1);i+=2;}
csHelp2=csString.Mid(i,3);
if ((CheckAttributen(csString.Mid(i,3),"",1)!="ERROR" || CheckAttributen(csString.Mid(i,2),"",1)!="ERROR") && csString.Mid(3,1)!="=")
{
iPosAttr++;i--;break;
}else csHelp+=" ";
b=TRUE;
}
}
if (!b)iPosAttr++;
if (CheckDefine(csHelp) && iPosAttr==1)
m_Attr.csDeclaration=csHelp;
if (iPosAttr==2)
{
m_Attr.csName=csHelp;
}
if (iPosAttr>=3)
{ csHelp2=csHelp3="";
n=0;
while (csHelp.Mid(n,1)!="=" && n<=csHelp.GetLength()) //get name of attribute
{
csHelp2+=csHelp.Mid(n,1);
n++;
}
n++;
while (n<=csHelp.GetLength()) //get value of attribute
{
csHelp3+=csHelp.Mid(n,1);
n++;
}
CheckAttributen(csHelp2.Trim(),csHelp3.Trim(),1);
}
i=UntilSymbol(csString,i);
}
return CheckObjects();