FileParser เป็นไลบรารี .NET ที่ออกแบบมาเพื่ออ่านไฟล์ข้อความทีละบรรทัดการบันทึกเนื้อหาของแต่ละบรรทัดเป็น VARs ประเภทพื้นฐาน (int, double, String ฯลฯ )
Nullable เปิดใช้งานจาก 1.6.x โครงการนี้เกิดมาพร้อมกับวัตถุประสงค์ที่เฉพาะเจาะจงมาก: จัดหาเครื่องมือที่แยกไฟล์ที่มีโครงสร้างที่รู้จักได้อย่างง่ายดายซึ่งมีความยืดหยุ่นและใช้งานง่ายเป็นวิธีการ IO มาตรฐาน C ++
สำหรับผู้ที่ไม่เข้าใจว่าฉันหมายถึงอะไรนี่เป็นกรณีการใช้งานง่าย ๆ (reposited):
ได้รับ input.txt ต่อไปนี้ซึ่งมีจำนวนเต็ม n (> = 0) ตามด้วย n คู่และสตริงสุดท้าย
5 1.1 3.14159265 2.2265 5.5 10 fish input.txt .cpp ที่เรียบง่ายเช่นเดียว
./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 ;
} ดูเหมือนง่ายต่อการประมวลผลไฟล์ .txt แบบง่าย ๆ เหล่านี้โดยใช้ C ++ ใช่ไหม?
การใช้ 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
นอกจากวิกิแล้วโครงการจริง (ของตัวเอง) บางโครงการที่ใช้คือ:
หากมีใครเคยใช้ Fileparser ฉันยินดีที่จะยอมรับคำแนะนำและแก้ข้อสงสัยใด ๆ
เพียงแค่เปิดปัญหา :)