From 7b20940682d804ae780810c9865c45244925b375 Mon Sep 17 00:00:00 2001 From: jpr Date: Fri, 22 Apr 2011 14:39:41 +0000 Subject: [PATCH] Fix strange names --- Example/SplitIntoDirectories.cxx | 9 +++-- Example/SplitIntoXCoherentDirectories.cxx | 16 +++++--- ...IntoXCoherentDirectoriesIgnoreSerieUID.cxx | 38 ++++++++++--------- 3 files changed, 37 insertions(+), 26 deletions(-) diff --git a/Example/SplitIntoDirectories.cxx b/Example/SplitIntoDirectories.cxx index b644f3d3..31c4aab4 100755 --- a/Example/SplitIntoDirectories.cxx +++ b/Example/SplitIntoDirectories.cxx @@ -3,8 +3,8 @@ Program: gdcm Module: $RCSfile: SplitIntoDirectories.cxx,v $ Language: C++ - Date: $Date: 2011/04/22 13:50:09 $ - Version: $Revision: 1.9 $ + Date: $Date: 2011/04/22 14:39:41 $ + Version: $Revision: 1.10 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -352,8 +352,9 @@ int main(int argc, char *argv[]) ///this is a trick to build up a lexicographical compliant name : /// eg : fich001.ima vs fich100.ima as opposed to fich1.ima vs fich100.ima std::string name = GDCM_NAME_SPACE::Util::GetName( *it ); - if (verbose) - std::cout << "name :[" << name << "]\n"; + + // if (verbose) + // std::cout << "name :[" << name << "]\n"; if (hasSkel) { diff --git a/Example/SplitIntoXCoherentDirectories.cxx b/Example/SplitIntoXCoherentDirectories.cxx index e8c45cd1..8223ca02 100755 --- a/Example/SplitIntoXCoherentDirectories.cxx +++ b/Example/SplitIntoXCoherentDirectories.cxx @@ -3,8 +3,8 @@ Program: gdcm Module: $RCSfile: SplitIntoXCoherentDirectories.cxx,v $ Language: C++ - Date: $Date: 2011/04/20 14:06:50 $ - Version: $Revision: 1.6 $ + Date: $Date: 2011/04/22 14:39:41 $ + Version: $Revision: 1.7 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -28,7 +28,7 @@ int main(int argc, char *argv[]) { START_USAGE(usage) - "\n exXCoherentFileSet :\n ", + "\n SplitIntoXCoherentDirectories :\n ", "Shows the various 'XCoherent' Filesets within a directory ", "Optionaly copies the images in a Directories tree ", "usage: exXCoherentFileSet {dirin=inputDirectoryName} ", @@ -147,6 +147,7 @@ int main(int argc, char *argv[]) GDCM_NAME_SPACE::SerieHelper *s; s = GDCM_NAME_SPACE::SerieHelper::New(); + GDCM_NAME_SPACE::File *f; s->SetLoadMode(GDCM_NAME_SPACE::LD_ALL); // Load everything for each File s->SetDirectory(dirName, true); // true : recursive exploration @@ -154,7 +155,7 @@ int main(int argc, char *argv[]) GDCM_NAME_SPACE::DirListType fileNames = dirlist.GetFilenames(); GDCM_NAME_SPACE::FileList *l = new GDCM_NAME_SPACE::FileList; - GDCM_NAME_SPACE::File *f; + std::string replaceChar("_"); // Loop on all the gdcm-readable files for (GDCM_NAME_SPACE::DirListType::iterator it = fileNames.begin(); it != fileNames.end(); @@ -358,6 +359,11 @@ int main(int argc, char *argv[]) fileName = (*it2)->GetFileName(); // --- for write lastFilename = GDCM_NAME_SPACE::Util::GetName( fileName ); + + // If you want to create file names of your own, here is the place! + // Just replace 'lastFilename' by anything that's better for you. + GDCM_NAME_SPACE:: Util::ReplaceSpecChar(lastFilename, replaceChar); + filenameout = xCoherentWriteDir + GDCM_NAME_SPACE::GDCM_FILESEPARATOR+ lastFilename; if (write) { @@ -379,7 +385,7 @@ int main(int argc, char *argv[]) } else if (copy) { - systemCommand = "cp \"" + fileName + "\" " + filenameout + "\""; + systemCommand = "cp \"" + fileName + "\" \"" + filenameout + "\""; system( systemCommand.c_str()); } if (verbose) diff --git a/Example/SplitIntoXCoherentDirectoriesIgnoreSerieUID.cxx b/Example/SplitIntoXCoherentDirectoriesIgnoreSerieUID.cxx index d6ceea02..02845def 100755 --- a/Example/SplitIntoXCoherentDirectoriesIgnoreSerieUID.cxx +++ b/Example/SplitIntoXCoherentDirectoriesIgnoreSerieUID.cxx @@ -3,8 +3,8 @@ Program: gdcm Module: $RCSfile: SplitIntoXCoherentDirectoriesIgnoreSerieUID.cxx,v $ Language: C++ - Date: $Date: 2011/04/20 14:06:50 $ - Version: $Revision: 1.4 $ + Date: $Date: 2011/04/22 14:39:41 $ + Version: $Revision: 1.5 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -30,13 +30,13 @@ int main(int argc, char *argv[]) START_USAGE(usage) "\n SplitIntoCoherentFileSetIgnoreSerieUID :\n ", "Shows the various 'XCoherent' Filesets within a directory ", - "Optionaly copis the images in a Directories tree ", + "Optionaly copies the images in a Directories tree ", "usage: SplitIntoCoherentFileSetIgnoreSerieUID{dirin=inputDirectoryName} ", " dirout=outputDirectoryName ", " { tag=group-elem | pos | ori } [sort] ", " [{ write | copy }] ", " [ { [noshadowseq] | [noshadow][noseq] } ] [debug] ", - " [studyUID = ] ", + " [studyUID = ] ", " dirin : user wants to analyze *all* the files ", " within the directory ", " write : user wants to create directories ", @@ -143,13 +143,14 @@ int main(int argc, char *argv[]) GDCM_NAME_SPACE::SerieHelper *s; s = GDCM_NAME_SPACE::SerieHelper::New(); - + GDCM_NAME_SPACE::File *f; GDCM_NAME_SPACE::DirList dirlist(dirName, true); // recursive exploration GDCM_NAME_SPACE::DirListType fileNames = dirlist.GetFilenames(); - GDCM_NAME_SPACE::FileList *l = new GDCM_NAME_SPACE::FileList; + + std::string replaceChar("_"); // Loop on all the gdcm-readable files for (GDCM_NAME_SPACE::DirListType::iterator it = fileNames.begin(); it != fileNames.end(); @@ -165,7 +166,6 @@ int main(int argc, char *argv[]) l->push_back(f); } - /* ===========================================================================================*/ std::string systemCommand; std::string filenameout; @@ -288,7 +288,7 @@ int main(int argc, char *argv[]) { xCoherentName = (*i).first; if (verbose) - std::cout << "xCoherentName = " << xCoherentName << std::endl; + std::cout << "==========================================xCoherentName = " << xCoherentName << std::endl; GDCM_NAME_SPACE::Util::ReplaceSpecChar(xCoherentName, rep); // --- for write if (write) @@ -336,8 +336,17 @@ int main(int argc, char *argv[]) controlCount ++; fileName = (*it2)->GetFileName(); std::cout << " " << fileName << std::endl; - - // --- for write + + lastFilename = GDCM_NAME_SPACE::Util::GetName( fileName ); + + // If you want to create file names of your own, here is the place! + // Just replace 'lastFilename' by anything that's better for you. + GDCM_NAME_SPACE:: Util::ReplaceSpecChar(lastFilename, replaceChar); + + filenameout = xCoherentWriteDir + GDCM_NAME_SPACE::GDCM_FILESEPARATOR+ lastFilename; + //systemCommand = "cp \"" + fileName + " \"" + filenameout; + //system( systemCommand.c_str()); + // --- for write if (write) { fh = GDCM_NAME_SPACE::FileHelper::New( (*it2) ); @@ -347,11 +356,6 @@ int main(int argc, char *argv[]) uint8_t *imageData = fh->GetImageDataRaw();// somewhat important : Loads the Pixels in memory ! if (!imageData) std::cout << "fail to read [" << (*it2)->GetFileName() << std::endl; - lastFilename = GDCM_NAME_SPACE::Util::GetName( fileName ); - filenameout = xCoherentWriteDir + GDCM_NAME_SPACE::GDCM_FILESEPARATOR+ lastFilename; - //systemCommand = "cp \"" + fileName + " \"" + filenameout; - //system( systemCommand.c_str()); - fh->SetWriteTypeToDcmExplVR(); fh->SetContentType(GDCM_NAME_SPACE::UNMODIFIED_PIXELS_IMAGE); if (!fh->Write(filenameout)) @@ -362,9 +366,9 @@ int main(int argc, char *argv[]) if (verbose) std::cout << "3 " << systemCommand << std::endl; fh->Delete(); - } + } // --- end for write - } + } std::cout << std::endl; } } -- 2.45.0