From d61161061bd5998ef4b1fc2aaad2cf4bbd78e90d Mon Sep 17 00:00:00 2001 From: Mike Buland Date: Thu, 11 Feb 2010 00:38:09 +0000 Subject: Started working on a CSV reader, it's pretty much done, the CSV writer is just a shell, but I may finish it soon, and started work on NewLine, a filter that converts newlines in text streams between the different OS standards. Also added some more helper operators to fbasicstring. --- src/newline.cpp | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 src/newline.cpp (limited to 'src/newline.cpp') diff --git a/src/newline.cpp b/src/newline.cpp new file mode 100644 index 0000000..0dbbae5 --- /dev/null +++ b/src/newline.cpp @@ -0,0 +1,56 @@ +#include "bu/newline.h" + +Bu::NewLine::NewLine( Bu::Stream &rNext ) : + Bu::Filter( rNext ), + bExChar( false ) +{ +} + +Bu::NewLine::~NewLine() +{ +} + +void Bu::NewLine::start() +{ +} + +size_t Bu::NewLine::stop() +{ + return 0; +} + +size_t Bu::NewLine::read( void *pBuf, size_t iAmnt ) +{ + size_t iRead = rNext.read( pBuf, iAmnt ); + size_t iOffset = 0; + + for( size_t i = 0; i < iRead; i++ ) + { + if( pBuf[i] == '\r' ) + { + pBuf[i+iOffset] = '\n'; + if( pBuf[j+1] == '\n' ) + { + iOffset--; + } + } + else if( pBuf[i] == '\n' ) + { + if( pBuf[j+1] == '\r' ) + { + iOffset--; + } + } + else if( iOffset ) + { + pBuf[i+iOffset] = pBuf[i]; + } + } + + iRead += iOffset; +} + +size_t Bu::NewLine::write( const void *pBuf, size_t iAmnt ) +{ +} + -- cgit v1.2.3