FileParser
v3.0.0
FileParserは、テキストファイルのラインバイラインを読み取るように設計された.NETライブラリであり、各行のコンテンツを基本タイプのVAR(int、double、stringなど)に保存します。
Nullable 1.6.xから有効になります。 このプロジェクトは、非常に具体的な目的で生まれました。既知の構造でファイルを簡単に解析するツールを提供し、理想的にはC ++標準IOアプローチと同じくらい柔軟で使いやすいです。
私が何を意味するのか理解していない人のために、ここに簡単なユースケースがあります(また再投稿):
整数n(> = 0)が続くn倍と最終文字列が続く、次のinput.txtが与えられた場合、
5 1.1 3.14159265 2.2265 5.5 10 fish次のような単純な.cppスニペットは、 input.txtを処理できます。ファイルが標準入力ソースとして選択されていることを提供します。
./myExecutable < input.txt > output.txt
# include < iostream >
# include < list >
# include < string >
int main ()
{
int _integer;
std::string _str;
std::list< double > _list;
double _auxdouble;
// Input start;
std::cin>>_integer;
for ( int i= 0 ; i<_integer; ++i)
{
std::cin>>_auxdouble;
_list. push_back (_auxdouble);
}
std::cin>>_str;
// Input end
// Data processing
// Output start
std::cout<<_integer<< " " ;
for ( const double & d : _list)
std::cout<<d<< " " ;
std::cout<<_str;
// Output end
return 0 ;
} C ++を使用してこの種のシンプルな.txtファイルを処理するのは楽なようですよね?
まあ、C#の使用はそれほど簡単ではありません。だからこそ、 FileParserが作成されたのは次のとおりです。
using System ;
using System . Collections . Generic ;
using System . Globalization ;
using System . IO ;
using FileParser ;
namespace FileParserSample
{
class Program
{
static void Main ( string [ ] args )
{
var cultureInfo = new CultureInfo ( "en-US" ) ;
CultureInfo . DefaultThreadCurrentCulture = cultureInfo ;
List < double > listDouble = new List < double > ( ) ;
string str ;
// Input start
IParsedFile file = new ParsedFile ( "SimpleInput.txt" ) ;
IParsedLine firstLine = file . NextLine ( ) ;
int _integer = firstLine . NextElement < int > ( ) ;
for ( int i = 0 ; i < _integer ; ++ i )
listDouble . Add ( firstLine . NextElement < double > ( ) ) ;
str = firstLine . NextElement < string > ( ) ;
// Input end
// Data Processing
// Output start
StreamWriter writer = new StreamWriter ( ".. \ CSharpSimpleOutput.txt" ) ;
using ( writer )
{
writer . WriteLine ( _integer + " " + string . Join ( null , listDouble ) ) ;
}
// Output end
}
}
} Fileparser APIを説明するWikiを作成するために最善を尽くしました。
Wikiに加えて、使用されているいくつかの実際の(独自の)プロジェクトは次のとおりです。
他の誰かがFileparserを使用した場合、私は提案を受け入れ、疑問を解決して喜んでいます。
問題を開くだけです:)