]> Creatis software - bbtk.git/blobdiff - packages/std/src/bbstdReadVectorFromFile.cxx
add ReadVectorFromFile
[bbtk.git] / packages / std / src / bbstdReadVectorFromFile.cxx
diff --git a/packages/std/src/bbstdReadVectorFromFile.cxx b/packages/std/src/bbstdReadVectorFromFile.cxx
new file mode 100644 (file)
index 0000000..32e5cde
--- /dev/null
@@ -0,0 +1,91 @@
+//===== 
+// Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost)
+//===== 
+#include "bbstdReadVectorFromFile.h"
+#include "bbstdPackage.h"
+#include  <vector>
+namespace bbstd
+{
+
+BBTK_ADD_BLACK_BOX_TO_PACKAGE(std,ReadVectorFromFile)
+BBTK_BLACK_BOX_IMPLEMENTATION(ReadVectorFromFile,bbtk::AtomicBlackBox);
+//===== 
+// Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost)
+//===== 
+void ReadVectorFromFile::Process()
+{
+    std::vector< std::vector< double > > Data;
+    std::ifstream openfile( bbGetInputFileName().c_str() );
+    std::string Input;
+    unsigned int LineLength=bbGetInputLineLength();
+    int skip = 0;
+    while ( getline( openfile, Input ) )
+    {
+       std::stringstream Parse;
+       Parse << Input;
+       double Value;
+       std::vector<double> Line;
+       // -------- une ligne sur 10!
+       skip++;
+       if(skip%10 != 0)
+          continue;
+       else
+          skip=1;
+       //--------       
+       while ( Parse >> Value )
+            Line.push_back( Value );
+       if ( Line.size() != LineLength )
+        {
+            std::cout << "Line " << Data.size() + 1 << " expected " <<
+            LineLength << " values, received " << Line.size() << " values, aborting." <<std::endl;
+           Data.clear();
+        }
+       Data.push_back( Line );
+    }
+    openfile.close();
+    
+    bbSetOutputOut(Data);
+    printf("ReadVectorFromFile::Process end \n");      
+       
+}
+//===== 
+// Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost)
+//===== 
+void ReadVectorFromFile::bbUserSetDefaultValues()
+{
+
+//  SET HERE THE DEFAULT INPUT/OUTPUT VALUES OF YOUR BOX 
+//    Here we initialize the input 'In' to 0
+       bbSetInputFileName("");
+       bbSetInputLineLength(1);          
+}
+//===== 
+// Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost)
+//===== 
+void ReadVectorFromFile::bbUserInitializeProcessing()
+{
+
+//  THE INITIALIZATION METHOD BODY :
+//    Here does nothing 
+//    but this is where you should allocate the internal/output pointers 
+//    if any 
+    //Data = new vector< vector< double > >;
+  
+}
+//===== 
+// Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost)
+//===== 
+void ReadVectorFromFile::bbUserFinalizeProcessing()
+{
+
+//  THE FINALIZATION METHOD BODY :
+//    Here does nothing 
+//    but this is where you should desallocate the internal/output pointers 
+//    if any
+   //delete Data;
+     
+}
+}
+// EO namespace bbstd
+
+