diff options
Diffstat (limited to 'src/csvwriter.cpp')
| -rw-r--r-- | src/csvwriter.cpp | 38 | 
1 files changed, 36 insertions, 2 deletions
diff --git a/src/csvwriter.cpp b/src/csvwriter.cpp index 59a471f..3e2816b 100644 --- a/src/csvwriter.cpp +++ b/src/csvwriter.cpp  | |||
| @@ -34,13 +34,47 @@ Bu::CsvWriter::~CsvWriter() | |||
| 34 | { | 34 | { | 
| 35 | } | 35 | } | 
| 36 | 36 | ||
| 37 | void Bu::CsvWriter::writeLine( const StrArray &aStrs ) | ||
| 38 | { | ||
| 39 | Bu::FString sBuf; | ||
| 40 | for( StrArray::const_iterator i = aStrs.begin(); i; i++ ) | ||
| 41 | { | ||
| 42 | if( i != aStrs.begin() ) | ||
| 43 | sBuf += ","; | ||
| 44 | sBuf += sEncode( *i ); | ||
| 45 | } | ||
| 46 | sBuf += "\n"; | ||
| 47 | |||
| 48 | sOut.write( sBuf ); | ||
| 49 | } | ||
| 50 | |||
| 37 | Bu::FString Bu::CsvWriter::encodeExcel( const Bu::FString &sIn ) | 51 | Bu::FString Bu::CsvWriter::encodeExcel( const Bu::FString &sIn ) | 
| 38 | { | 52 | { | 
| 39 | return ""; | 53 | if( sIn.find('\"') ) | 
| 54 | { | ||
| 55 | Bu::FString sOut = "\""; | ||
| 56 | for( Bu::FString::const_iterator i = sIn.begin(); i; i++ ) | ||
| 57 | { | ||
| 58 | if( *i == '\"' ) | ||
| 59 | sOut += "\"\""; | ||
| 60 | else | ||
| 61 | sOut += *i; | ||
| 62 | } | ||
| 63 | return sOut; | ||
| 64 | } | ||
| 65 | return sIn; | ||
| 40 | } | 66 | } | 
| 41 | 67 | ||
| 42 | Bu::FString Bu::CsvWriter::encodeC( const Bu::FString &sIn ) | 68 | Bu::FString Bu::CsvWriter::encodeC( const Bu::FString &sIn ) | 
| 43 | { | 69 | { | 
| 44 | return ""; | 70 | Bu::FString sOut = ""; | 
| 71 | for( Bu::FString::const_iterator i = sIn.begin(); i; i++ ) | ||
| 72 | { | ||
| 73 | if( *i == ',' ) | ||
| 74 | sOut += "\\,"; | ||
| 75 | else | ||
| 76 | sOut += *i; | ||
| 77 | } | ||
| 78 | return sOut; | ||
| 45 | } | 79 | } | 
| 46 | 80 | ||
