Index: trunk/BNC/bncgetthread.cpp
===================================================================
--- trunk/BNC/bncgetthread.cpp	(revision 2522)
+++ trunk/BNC/bncgetthread.cpp	(revision 2523)
@@ -387,5 +387,5 @@
       }
       else if (_rawFile) {
-        data = _rawFile->read();
+        data = _rawFile->readChunk();
 
         if (data.isEmpty()) {
Index: trunk/BNC/bncrawfile.cpp
===================================================================
--- trunk/BNC/bncrawfile.cpp	(revision 2522)
+++ trunk/BNC/bncrawfile.cpp	(revision 2523)
@@ -52,12 +52,31 @@
   _format     = format;
   _staID      = fileName.mid(fileName.lastIndexOf(QDir::separator())+1,5);  
-  _inpOutFlag = ioFlg;
+  _inpFile    = 0;
   _outFile    = 0;
+  _version    = 0;
 
-  // Initialize
-  // ----------
-  if (_inpOutFlag == input) {
+  // Initialize for Input
+  // --------------------
+  if (ioFlg == input) {
+    _inpFile = new QFile(_fileName);
+    _inpFile->open(QIODevice::ReadOnly);
+    QString line = _inpFile->readLine();
+    QStringList lst1 = line.split(' ');
+    _version = lst1.value(0).toInt();
+
+    line = _inpFile->readLine();
     bncApp* app = (bncApp*) qApp;
-    // TODO: set date and time
+    app->_currentDateAndTimeGPS = 
+                   new QDateTime(QDateTime::fromString(line, Qt::ISODate));
+  }
+
+  // Initialize for Output
+  // ---------------------
+  else {
+    _outFile = new QFile(_fileName);
+    _outFile->open(QIODevice::WriteOnly);
+    QByteArray header = "1 Version of BNC raw file\n" +
+    	                currentDateAndTimeGPS().toString(Qt::ISODate).toAscii();
+    _outFile->write(header);
   }
 }
@@ -73,13 +92,4 @@
 void bncRawFile::writeRawData(const QByteArray& data, const QByteArray& staID,
                               const QByteArray& format) {
-
-  if ( !_outFile && !_fileName.isEmpty() ) {
-    _outFile = new QFile(_fileName);
-    _outFile->open(QIODevice::WriteOnly);
-    QByteArray header = "1 Version of BNC raw file\n" +
-    	                currentDateAndTimeGPS().toString(Qt::ISODate).toAscii();
-    _outFile->write(header);
-  }
-
   if (_outFile) {
     QString chunkHeader = 
@@ -94,5 +104,5 @@
 // Raw Input
 ////////////////////////////////////////////////////////////////////////////
-QByteArray bncRawFile::read() {
+QByteArray bncRawFile::readChunk() {
 
   return "";
Index: trunk/BNC/bncrawfile.h
===================================================================
--- trunk/BNC/bncrawfile.h	(revision 2522)
+++ trunk/BNC/bncrawfile.h	(revision 2523)
@@ -43,5 +43,5 @@
   QByteArray format() const {return _format;}
   QByteArray staID() const {return _staID;}
-  QByteArray read();
+  QByteArray readChunk();
   void writeRawData(const QByteArray& data, const QByteArray& staID,
                     const QByteArray& format);
@@ -50,6 +50,7 @@
   QByteArray _format;
   QByteArray _staID;
+  QFile*     _inpFile;
   QFile*     _outFile;
-  inpOutFlag _inpOutFlag; // whether used for input or output
+  int        _version;
 };
 #endif
