Poco::Glob

Poco::Glob を紹介します。

Unix の shell に組み込まれている glob の POCO 版で、文字列は UTF-8 であることを前提としています。

GlobTest.cpp

・Glob そのものを解説してもしょうがないので何を作ろうか迷ったのですが、
 - ワーキングディレクトリの .c, .cpp, .h ファイルを列挙
 - ホームディレクトリの . 始まりのファイルを列挙
 をやってみました。

#include <Poco/Glob.h>
 
#include <string>
#include <set>
 
#include "ScopedLogMessage.h"
#include "PrepareConsoleLogger.h"
 
int main(int /*argc*/, char** /*argv*/)
{
	PrepareConsoleLogger logger(Poco::Logger::ROOT, Poco::Message::PRIO_INFORMATION);
 
	ScopedLogMessage msg("GlobTest ", "start", "end");
 
	std::set<std::string> files;
 
	Poco::Glob::glob("./[A-Z]*.[ch]*", files);
	msg.Message(" Poco::Glob::glob(\"./[A-Z]*.[ch]*\", files)");
	for(std::set<std::string>::iterator itr=files.begin(); itr!=files.end(); ++itr)
	{
		msg.Message("  " + *itr);
	}
 
	files.clear();
 
	Poco::Glob::glob("~/.*", files, Poco::Glob::GLOB_DOT_SPECIAL);
	msg.Message(" Poco::Glob::glob(\"~/.*\", files, Poco::Glob::GLOB_DOT_SPECIAL)");
	for(std::set<std::string>::iterator itr=files.begin(); itr!=files.end(); ++itr)
	{
		msg.Message("  " + *itr);
	}
 
	return 0;
}

Results of execution

[0] GlobTest start
[0]  Poco::Glob::glob("./[A-Z]*.[ch]*", files)
[0]   GlobTest.cpp
[0]   ScopedLogMessage.cpp
[0]   ScopedLogMessage.h
[0]  Poco::Glob::glob("~/.*", files, Poco::Glob::GLOB_DOT_SPECIAL)
[0]   /Users/Setsu/.CFUserTextEncoding
[0]   /Users/Setsu/.DS_Store
[0]   /Users/Setsu/.Trash/
[0]   /Users/Setsu/.Xauthority
[0]   /Users/Setsu/.Xcode/
[0]   /Users/Setsu/.appletviewer
[0]   /Users/Setsu/.bash_history
[0]   /Users/Setsu/.bash_profile
[0]   /Users/Setsu/.cups/
[0]   /Users/Setsu/.distcc/
[0]   /Users/Setsu/.emacs.d/
[0]   /Users/Setsu/.fontconfig/
[0]   /Users/Setsu/.gdb_history
[0]   /Users/Setsu/.inkscape-etc/
[0]   /Users/Setsu/.inkscape/
[0]   /Users/Setsu/.isql.history
[0]   /Users/Setsu/.lesshst
[0]   /Users/Setsu/.macports/
[0]   /Users/Setsu/.monitor
[0]   /Users/Setsu/.mysql_history
[0]   /Users/Setsu/.openbase_monitor
[0]   /Users/Setsu/.openforms
[0]   /Users/Setsu/.openforms_dev
[0]   /Users/Setsu/.pearrc
[0]   /Users/Setsu/.sqlite_history
[0]   /Users/Setsu/.ssh/
[0]   /Users/Setsu/.subversion/
[0]   /Users/Setsu/.tcshrc
[0] GlobTest end

Downloads

ここをクリックすると、makefile や VC++ プロジェクトなど一式がダウンロードできます。
(2013.05.31 updated)
・2010年6月18日からのダウンロード数:743

Subversion

・フリーの Subversion ホスティングサービス Assemblaで、ソースコードを管理しています。

Reference

http://pocoproject.org にある Files のプレセンテーション。(PDF)

Powered by POCO Copyright © 2010 Round Square Inc. All rights reserved.


Leave a Comment


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">