Index: /trunk/BNC/rinex/reqcedit.cpp
===================================================================
--- /trunk/BNC/rinex/reqcedit.cpp	(revision 4080)
+++ /trunk/BNC/rinex/reqcedit.cpp	(revision 4081)
@@ -263,26 +263,16 @@
   while (it.hasNext()) {
     QString fileName = it.next();
-    t_rnxNavFile rnxNavFile(fileName, t_rnxNavFile::input);
-    for (unsigned ii = 0; ii < rnxNavFile.ephs().size(); ii++) {
-      t_eph* eph   = rnxNavFile.ephs()[ii];
-      bool   isNew = true;
-      for (int iOld = 0; iOld < _ephs.size(); iOld++) {
-        const t_eph* ephOld = _ephs[iOld];
-        if (ephOld->prn() == eph->prn() && ephOld->IOD() == eph->IOD()) {
-          isNew = false;
-          break;
-        }
-      }
-      if (isNew) {
-        if      (eph->type() == t_eph::GPS) {
-          _ephs.append(new t_ephGPS(*dynamic_cast<t_ephGPS*>(eph)));
-        }
-        else if (eph->type() == t_eph::GLONASS) {
-          _ephs.append(new t_ephGlo(*dynamic_cast<t_ephGlo*>(eph)));
-        }
-        else if (eph->type() == t_eph::Galileo) {
-          _ephs.append(new t_ephGal(*dynamic_cast<t_ephGal*>(eph)));
-        }
-      }
+    if (fileName.indexOf('*') != -1 || fileName.indexOf('?') != -1) {
+      QFileInfo fileInfo(fileName);
+      QDir dir = fileInfo.dir();
+      QStringList filters; filters << fileInfo.fileName();
+      QListIterator<QFileInfo> it(dir.entryInfoList(filters));
+      while (it.hasNext()) {
+        QString filePath = it.next().filePath(); 
+        appendEphemerides(filePath);
+      }
+    }
+    else {
+      appendEphemerides(fileName);
     }
   }
@@ -304,2 +294,31 @@
   }
 }
+
+//  
+////////////////////////////////////////////////////////////////////////////
+void t_reqcEdit::appendEphemerides(const QString& fileName) {
+
+  t_rnxNavFile rnxNavFile(fileName, t_rnxNavFile::input);
+  for (unsigned ii = 0; ii < rnxNavFile.ephs().size(); ii++) {
+    t_eph* eph   = rnxNavFile.ephs()[ii];
+    bool   isNew = true;
+    for (int iOld = 0; iOld < _ephs.size(); iOld++) {
+      const t_eph* ephOld = _ephs[iOld];
+      if (ephOld->prn() == eph->prn() && ephOld->IOD() == eph->IOD()) {
+        isNew = false;
+        break;
+      }
+    }
+    if (isNew) {
+      if      (eph->type() == t_eph::GPS) {
+        _ephs.append(new t_ephGPS(*dynamic_cast<t_ephGPS*>(eph)));
+      }
+      else if (eph->type() == t_eph::GLONASS) {
+        _ephs.append(new t_ephGlo(*dynamic_cast<t_ephGlo*>(eph)));
+      }
+      else if (eph->type() == t_eph::Galileo) {
+        _ephs.append(new t_ephGal(*dynamic_cast<t_ephGal*>(eph)));
+      }
+    }
+  }
+}
Index: /trunk/BNC/rinex/reqcedit.h
===================================================================
--- /trunk/BNC/rinex/reqcedit.h	(revision 4080)
+++ /trunk/BNC/rinex/reqcedit.h	(revision 4081)
@@ -54,4 +54,5 @@
   void rememberLLI(const t_rnxObsFile* obsFile, const t_rnxObsFile::t_rnxEpo* epo);
   void applyLLI(const t_rnxObsFile* obsFile, t_rnxObsFile::t_rnxEpo* epo);
+  void appendEphemerides(const QString& fileName);
 
   QStringList            _obsFileNames;
