diff options
author | Mike Buland <eichlan@xagasoft.com> | 2010-04-23 15:14:00 +0000 |
---|---|---|
committer | Mike Buland <eichlan@xagasoft.com> | 2010-04-23 15:14:00 +0000 |
commit | 801e7de1f85656746d832508baf4583907826420 (patch) | |
tree | 6e2639b6904ee8bcef2781420741124948c17f2c /src/csvwriter.cpp | |
parent | d8a8c482b2f6b09ee8995b9563397a9b9bd135e8 (diff) | |
download | libbu++-801e7de1f85656746d832508baf4583907826420.tar.gz libbu++-801e7de1f85656746d832508baf4583907826420.tar.bz2 libbu++-801e7de1f85656746d832508baf4583907826420.tar.xz libbu++-801e7de1f85656746d832508baf4583907826420.zip |
Minor updates to the List class, unchecked corner cases.
The CsvWriter now writes csv. It understands both excel formatting and c-style,
which I made up myself (it's just c-style escape sequences).
Sha1 is converted to work with the CryptoHash API and it does indeed work.
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 | ||