--- officecfg/registry/schema/org/openoffice/Office/Calc.xcs 2005-07-24 17:09:34.000000000 +0530
+++ officecfg/registry/schema/org/openoffice/Office/Calc.xcs 2005-07-31 22:13:51.000000000 +0530
@@ -1041,6 +1041,35 @@
NULL
+
+
+ Contains setting for Text CSV Import
+
+
+
+ muthusuba
+ Merge Delimiter check box status
+
+
+ false
+
+
+
+ muthusuba
+ List of Separators - as a String
+
+
+ ;
+
+
+
+ muthusuba
+ Text Separators
+
+
+ "
+
+
Contains settings that affect cell calculation.
--- sc/source/ui/dbgui/scuiasciiopt.cxx 2005-07-24 17:46:45.000000000 +0530
+++ sc/source/ui/dbgui/scuiasciiopt.cxx 2005-07-31 22:37:08.000000000 +0530
@@ -79,6 +79,12 @@
// ause
#include "editutil.hxx"
+#include
+#include
+#include
+#include "miscuno.hxx"
+
+
//! TODO make dynamic
#ifdef WIN
const SCSIZE ASCIIDLG_MAXROWS = 10000;
@@ -86,6 +92,17 @@ const SCSIZE ASCIIDLG_MAXROWS
const SCSIZE ASCIIDLG_MAXROWS = MAXROWCOUNT;
#endif
+
+using namespace rtl;
+using namespace com::sun::star::uno;
+
+// Defines - CSV Import Preserve Options
+#define SEPARATORS "Separators"
+#define TEXT_SEPARATORS "TextSeparators"
+#define MERGE_DELIMITERS "MergeDelimiters"
+#define SEP_PATH "Office.Calc/CSVImport"
+
+
// ============================================================================
void lcl_FillCombo( ComboBox& rCombo, const String& rList, sal_Unicode cSelect )
@@ -133,6 +150,51 @@ sal_Unicode lcl_CharFromCombo( ComboBox&
return c;
}
+static void load_Separators( OUString &sFieldSeparators, OUString &sTextSeparators,
+ bool &bMergeDelimiters )
+{
+ SequenceaValues;
+ const Any *pProperties;
+ Sequence aNames(3);
+ OUString* pNames = aNames.getArray();
+ ScLinkConfigItem aItem( OUString::createFromAscii( SEP_PATH ) );
+
+ pNames[0] = OUString::createFromAscii( MERGE_DELIMITERS );
+ pNames[1] = OUString::createFromAscii( SEPARATORS );
+ pNames[2] = OUString::createFromAscii( TEXT_SEPARATORS );
+ aValues = aItem.GetProperties( aNames );
+ pProperties = aValues.getConstArray();
+ if( pProperties[1].hasValue() )
+ pProperties[1] >>= sFieldSeparators;
+
+ if( pProperties[2].hasValue() )
+ pProperties[2] >>= sTextSeparators;
+
+ if( pProperties[0].hasValue() )
+ bMergeDelimiters = ScUnoHelpFunctions::GetBoolFromAny( pProperties[0] );
+}
+
+static void save_Separators( String maSeparators, String maTxtSep, bool bMergeDelimiters )
+{
+ OUString sFieldSeparators = OUString( maSeparators );
+ OUString sTextSeparators = OUString( maTxtSep );
+ Sequence aValues;
+ Any *pProperties;
+ Sequence aNames(3);
+ OUString* pNames = aNames.getArray();
+ ScLinkConfigItem aItem( OUString::createFromAscii( SEP_PATH ) );
+
+ pNames[0] = OUString::createFromAscii( MERGE_DELIMITERS );
+ pNames[1] = OUString::createFromAscii( SEPARATORS );
+ pNames[2] = OUString::createFromAscii( TEXT_SEPARATORS );
+ aValues = aItem.GetProperties( aNames );
+ pProperties = aValues.getArray();
+ pProperties[1] <<= sFieldSeparators;
+ pProperties[2] <<= sTextSeparators;
+ ScUnoHelpFunctions::SetBoolInAny( pProperties[0], bMergeDelimiters );
+
+ aItem.PutProperties(aNames, aValues);
+}
// ----------------------------------------------------------------------------
@@ -190,16 +252,35 @@ ScImportAsciiDlg::ScImportAsciiDlg( Wind
aName += ']';
SetText( aName );
- switch(cSep)
+
+ OUString sFieldSeparators;
+ OUString sTextSeparators;
+ bool bMergeDelimiters = false;
+ load_Separators (sFieldSeparators, sTextSeparators, bMergeDelimiters);
+ maFieldSeparators = String(sFieldSeparators);
+
+ if( bMergeDelimiters )
+ aCkbAsOnce.Check();
+
+ ByteString bString(maFieldSeparators,RTL_TEXTENCODING_MS_1252);
+ const sal_Char *aSep = bString.GetBuffer();
+ int i = 0;
+ int len = maFieldSeparators.Len();
+ for(i=0;i