вобщем вопрос решился... надо было обнулять Buffer... delete оказывается недостаточно.
вот код который нормально работает :
int iFH, iFL, iBR, i, j, ID;
char *Buffer =0; // << --- here -----
AnsiString str, st1[7],subdir,tmpstr;
iFH = FileOpen(FileName, fmOpenRead);
DWORD Error = GetLastError();
iFL = FileSeek(iFH,0,2);
FileSeek(iFH,0,0);
Buffer = new char[iFL+1];
memset(Buffer,NULL,iFL+1); // << ---- here ----
iBR = FileRead(iFH, Buffer, iFL);
FileClose(iFH);
OemToChar(Buffer,Buffer);
j=0;
str=EmptyStr;
for (i=0;i<iBR;i++)
{
if(Buffer[i]!=';')
{
str+=Buffer[i];
}
else
{
st1[j]=str+"\0";
j++;
str=EmptyStr;
}
}
st1[j]=str;
str=EmptyStr;
delete[] Buffer;
Buffer = 0; // --- here ---
|