FileParser ist eine .NET- Bibliothek, die zum Lesen von Textdateien line-by-Line gelesen wurde und die Inhalte jeder Zeile in grundlegenden Typen Vars (int, doppelte, Zeichenfolge usw.) speichert.
Nullable ist ab 1.6.X aktiviert. Dieses Projekt wurde mit einem ganz bestimmten Zweck geboren: ein Tool bereitzustellen, mit dem Dateien leicht mit einer bekannten Struktur analysiert werden und idealerweise so flexibel und einfach zu verwenden wie C ++ Standard -IO -Ansatz.
Für diejenigen, die nicht verstehen, was ich meine, hier ist ein einfacher Anwendungsfall (ebenfalls reposiert):
Bei der folgenden input.txt .
5 1.1 3.14159265 2.2265 5.5 10 fish Ein einfacher .cpp -Snippet wie das folgende kann input.txt verarbeiten, sofern diese Datei als Standardeingangsquelle ausgewählt wird:
./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 ;
} Es scheint mühelos, diese Art von einfachen .txt -Dateien mit C ++ zu verarbeiten, oder?
Nun, die Verwendung von C# sind nicht so einfach, und deshalb wurde FileParser erstellt für:
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
}
}
} Ich habe mein Bestes getan, um ein Wiki zu erstellen, das die Fileparser -API beschreibt.
Neben dem Wiki sind einige reale (eigene) Projekte, bei denen es verwendet wurde,:
Wenn jemand anderes FileParser verwendet, akzeptiere ich gerne Vorschläge und löst Zweifel.
Öffne einfach ein Problem :)