#include <FSD_CmpFile.ixx>
#include <OSD.hxx>
-#include <OSD_Real2String.hxx>
-
#include <Storage_StreamModeError.hxx>
#include <Storage_StreamUnknownTypeError.hxx>
#include <Standard_PCharacter.hxx>
//#endif
const Standard_CString MAGICNUMBER = "CMPFILE";
-const Standard_CString ENDOFNORMALEXTENDEDSECTION = "BEGIN_REF_SECTION";
-const Standard_Integer SIZEOFNORMALEXTENDEDSECTION = 16;
//=======================================================================
//function : FSD_CmpFile
if (s == Storage_VSOk) {
TCollection_AsciiString l;
- Standard_Integer len = strlen(FSD_CmpFile::MagicNumber());
+ Standard_Size len = strlen(FSD_CmpFile::MagicNumber());
f.ReadChar(l,len);
}
else {
myStream.precision(17);
+ myStream.imbue (std::locale::classic()); // use always C locale
SetOpenMode(aMode);
}
}
Buffer[0] = '\0';
//myStream.get(Buffer,8192,'\n');
myStream.getline(Buffer,8192,'\n');
- for (Standard_Integer lv = (strlen(Buffer)- 1); lv > 1 && (Buffer[lv] == '\r' || Buffer[lv] == '\n') ;lv--) {
+ for (Standard_Size lv = (strlen(Buffer)- 1); lv > 1 && (Buffer[lv] == '\r' || Buffer[lv] == '\n') ;lv--) {
Buffer[lv] = '\0';
}
}
FlushEndOfLine();
-#if 0
- char c = '\0';
- Standard_ExtCharacter i = 0,j,count = 0;
- Standard_Boolean fin = Standard_False;
- Standard_CString tg = ENDOFNORMALEXTENDEDSECTION;
-
- buffer.Clear();
-
- while (!fin && !IsEnd()) {
- myStream.get(c);
-
- if (c == tg[count]) count++;
- else count = 0;
- if (count < SIZEOFNORMALEXTENDEDSECTION) {
- i = 0; j = 0;
- i += (Standard_ExtCharacter)c;
- if (c == '\0') fin = Standard_True;
- i = (i << 8);
-
- myStream.get(c);
- if (c == tg[count]) count++;
- else count = 0;
- if (count < SIZEOFNORMALEXTENDEDSECTION) {
- if ( c != '\r') {
- j += (Standard_ExtCharacter)c;
- if (c != '\n' && c != '\r') {
- fin = Standard_False;
- i |= (0x00FF & j);
- buffer += (Standard_ExtCharacter)i;
- }
-
- }
- }
- else {
- Storage_StreamExtCharParityError::Raise();
- }
- }
- else {
- Storage_StreamExtCharParityError::Raise();
- }
- }
-#endif
-
}
//=======================================================================
//purpose : read <rsize> character from the current position.
//=======================================================================
-void FSD_CmpFile::ReadChar(TCollection_AsciiString& buffer, const Standard_Integer rsize)
+void FSD_CmpFile::ReadChar(TCollection_AsciiString& buffer, const Standard_Size rsize)
{
char c;
- Standard_Integer ccount = 0;
+ Standard_Size ccount = 0;
buffer.Clear();
Buffer[0] = '\0';
//myStream.get(Buffer,8192,'\n');
myStream.getline(Buffer,8192,'\n');
- for (Standard_Integer lv = (strlen(Buffer)- 1); lv > 1 && (Buffer[lv] == '\r' || Buffer[lv] == '\n') ;lv--) {
+ for (Standard_Size lv = (strlen(Buffer)- 1); lv > 1 && (Buffer[lv] == '\r' || Buffer[lv] == '\n') ;lv--) {
Buffer[lv] = '\0';
}
bpos = Buffer;
void FSD_CmpFile::ReadWord(TCollection_AsciiString& buffer)
{
- char c;
+ char c = '\0';
char b[8193],*tmpb;
Standard_Boolean IsEnd = Standard_False;
Standard_Integer i;
Storage_BaseDriver& FSD_CmpFile::PutReal(const Standard_Real aValue)
{
-#ifdef BUC60808
- char realbuffer[100];
- Standard_PCharacter pChar;
- //
- pChar=realbuffer;
- realbuffer[0] = '\0';
- //
- if (myRealConv.RealToCString(aValue,pChar)) {
- myStream << realbuffer << " ";
- }
- else {
- Storage_StreamWriteError::Raise();
- }
- if (myStream.bad()) Storage_StreamWriteError::Raise();
-
- return *this;
-
-#else
myStream << ((Standard_Real)aValue) << " ";
-
if (myStream.bad()) Storage_StreamWriteError::Raise();
return *this;
-#endif
}
//=======================================================================
Storage_BaseDriver& FSD_CmpFile::PutShortReal(const Standard_ShortReal aValue)
{
-#ifdef BUC60808
- char realbuffer[100];
- Standard_PCharacter pStr;
- //
- pStr=realbuffer;
- realbuffer[0] = '\0';
- //
- if (myRealConv.RealToCString(aValue,pStr)) {
- myStream << realbuffer << " ";
- }
- else {
- Storage_StreamWriteError::Raise();
- }
- if (myStream.bad()) Storage_StreamWriteError::Raise();
-
- return *this;
-#else
myStream << aValue << " ";
-
if (myStream.bad()) Storage_StreamWriteError::Raise();
return *this;
-#endif
}
//=======================================================================
cerr << "\t buffer is" << realbuffer<< endl;
Storage_StreamTypeMismatchError::Raise();
}
- if (!myRealConv.CStringToReal(realbuffer,aValue)) {
+ if (!OSD::CStringToReal(realbuffer,aValue)) {
cerr << "%%%ERROR: read error of double at offset " << myStream.tellg() << endl;
cerr << "\t buffer is" << realbuffer<< endl;
- //if (!OSD::CStringToReal(realbuffer,aValue))
Storage_StreamTypeMismatchError::Raise();
}
realbuffer[0] = '\0';
if (!(myStream >> realbuffer)) Storage_StreamTypeMismatchError::Raise();
- // if (!OSD::CStringToReal(realbuffer,r))
- if (!myRealConv.CStringToReal(realbuffer,r)) Storage_StreamTypeMismatchError::Raise();
+ if (!OSD::CStringToReal(realbuffer,r))
+ Storage_StreamTypeMismatchError::Raise();
aValue = (Standard_ShortReal)r;
{
Storage_Error s;
TCollection_AsciiString l;
- Standard_Integer len = strlen(FSD_CmpFile::MagicNumber());
+ Standard_Size len = strlen(FSD_CmpFile::MagicNumber());
ReadChar(l,len);
}
default: return -1;
}
- return -1;
}