From: <zep...@us...> - 2006-11-02 12:13:32
|
Revision: 166 http://svn.sourceforge.net/pzfilereader/?rev=166&view=rev Author: zepernick Date: 2006-11-02 04:13:28 -0800 (Thu, 02 Nov 2006) Log Message: ----------- made a change to use the String.split() when no qualifier is specified. Needs some more testing, seems a little faster. Going to test against results I got at work yesterday. Modified Paths: -------------- trunk/PZFileReader/src/main/java/net/sf/pzfilereader/util/BXParser.java Modified: trunk/PZFileReader/src/main/java/net/sf/pzfilereader/util/BXParser.java =================================================================== --- trunk/PZFileReader/src/main/java/net/sf/pzfilereader/util/BXParser.java 2006-10-31 22:47:08 UTC (rev 165) +++ trunk/PZFileReader/src/main/java/net/sf/pzfilereader/util/BXParser.java 2006-11-02 12:13:28 UTC (rev 166) @@ -124,6 +124,14 @@ list.add(""); return list; } + + if (qualifier == 0){ + final String[] split = line.split("\\" + delimiter); + for (int i = 0 ; i < split.length; i ++) { + list.add(split[i]); + } + return list; + } boolean insideQualifier = false; char previousChar = 0; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <zep...@us...> - 2006-11-03 11:47:44
|
Revision: 167 http://svn.sourceforge.net/pzfilereader/?rev=167&view=rev Author: zepernick Date: 2006-11-03 03:47:38 -0800 (Fri, 03 Nov 2006) Log Message: ----------- Reverted back to previous revision. Change was not going to work properly. Modified Paths: -------------- trunk/PZFileReader/src/main/java/net/sf/pzfilereader/util/BXParser.java Modified: trunk/PZFileReader/src/main/java/net/sf/pzfilereader/util/BXParser.java =================================================================== --- trunk/PZFileReader/src/main/java/net/sf/pzfilereader/util/BXParser.java 2006-11-02 12:13:28 UTC (rev 166) +++ trunk/PZFileReader/src/main/java/net/sf/pzfilereader/util/BXParser.java 2006-11-03 11:47:38 UTC (rev 167) @@ -124,14 +124,6 @@ list.add(""); return list; } - - if (qualifier == 0){ - final String[] split = line.split("\\" + delimiter); - for (int i = 0 ; i < split.length; i ++) { - list.add(split[i]); - } - return list; - } boolean insideQualifier = false; char previousChar = 0; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <zep...@us...> - 2006-11-25 17:17:35
|
Revision: 194 http://svn.sourceforge.net/pzfilereader/?rev=194&view=rev Author: zepernick Date: 2006-11-25 09:17:35 -0800 (Sat, 25 Nov 2006) Log Message: ----------- moved parser's into ParserUtils Removed Paths: ------------- trunk/PZFileReader/src/main/java/net/sf/pzfilereader/util/BXParser.java Deleted: trunk/PZFileReader/src/main/java/net/sf/pzfilereader/util/BXParser.java =================================================================== --- trunk/PZFileReader/src/main/java/net/sf/pzfilereader/util/BXParser.java 2006-11-25 17:17:25 UTC (rev 193) +++ trunk/PZFileReader/src/main/java/net/sf/pzfilereader/util/BXParser.java 2006-11-25 17:17:35 UTC (rev 194) @@ -1,213 +0,0 @@ -/** - * - */ -package net.sf.pzfilereader.util; - -import java.util.ArrayList; -import java.util.List; - -/** - * @author xhensevb - * - */ -public class BXParser { - public static List splitLine(String line, final char delimiter, char qualifier) { - return splitLine(line, delimiter, qualifier, 10); - } - - public static List splitLine(String line, final char delimiter, char qualifier, int initialSize) { - List list = new ArrayList(initialSize); - - if (delimiter == 0) { - list.add(line); - return list; - } else if (line == null) { - return list; - } - - final String trimmedLine = line.trim(); - int size = trimmedLine.length(); - - if (size == 0) { - list.add(""); - return list; - } - - boolean insideQualifier = false; - char previousChar = 0; - int startBlock = 0; - int endBlock = 0; - boolean blockWasInQualifier = false; - - final String doubleQualifier = String.valueOf(qualifier) + String.valueOf(qualifier); - for (int i = 0; i < size; i++) { - - final char currentChar = trimmedLine.charAt(i); - if (currentChar != delimiter && currentChar != qualifier) { - previousChar = currentChar; - endBlock = i + 1; - continue; - } - - if (currentChar == delimiter) { - // we've found the delimiter (eg ,) - if (!insideQualifier) { - String trimmed = trimmedLine.substring(startBlock, endBlock > startBlock ? endBlock : startBlock + 1); - if (!blockWasInQualifier) { - trimmed = trimmed.trim(); - trimmed = trimmed.replaceAll(doubleQualifier, String.valueOf(qualifier)); - } - - if (trimmed.length() == 1 && (trimmed.charAt(0) == delimiter || trimmed.charAt(0) == qualifier)) { - list.add(""); - } else { - list.add(trimmed); - } - blockWasInQualifier = false; - startBlock = i + 1; - } - } else if (currentChar == qualifier) { - if (!insideQualifier && previousChar != qualifier) { - if (previousChar == delimiter || previousChar == 0 || previousChar == ' ') { - insideQualifier = true; - startBlock = i + 1; - } else { - endBlock = i + 1; - } - } else { - insideQualifier = false; - blockWasInQualifier = true; - endBlock = i; - // last column (e.g. finishes with ") - if (i == size - 1) { - list.add(trimmedLine.substring(startBlock, size - 1)); - startBlock = i + 1; - } - } - } - previousChar = currentChar; - } - - if (startBlock < size) { - String str = trimmedLine.substring(startBlock, size); - str = str.replaceAll(doubleQualifier, String.valueOf(qualifier)); - if (blockWasInQualifier) { - if (str.charAt(str.length() - 1) == qualifier) { - list.add(str.substring(0, str.length() - 1)); - } else { - list.add(str); - } - } else { - list.add(str.trim()); - } - } else if (trimmedLine.charAt(size - 1) == delimiter) { - list.add(""); - } - - return list; - } - - public static List splitLineWithBuf(String line, final char delimiter, char qualifier, int initialSize) { - List list = new ArrayList(initialSize); - - if (delimiter == 0) { - list.add(line); - return list; - } else if (line == null) { - return list; - } - - final String trimmedLine = line.trim(); - int size = trimmedLine.length(); - - if (size == 0) { - list.add(""); - return list; - } - - boolean insideQualifier = false; - char previousChar = 0; - boolean blockWasInQualifier = false; - StringBuffer buf = new StringBuffer(32); - - // final String doubleQualifier = String.valueOf(qualifier) + - // String.valueOf(qualifier); - for (int i = 0; i < size; i++) { - final char currentChar = trimmedLine.charAt(i); - if (currentChar != delimiter && currentChar != qualifier) { - previousChar = currentChar; - if (' ' != currentChar || insideQualifier || buf.length() > 0) { - buf.append(currentChar); - } - continue; - } - - if (currentChar == delimiter) { - // we've found the delimiter (eg ,) - if (!insideQualifier) { - // String trimmed = trimmedLine.substring(startBlock, - // endBlock > startBlock ? endBlock : startBlock + 1); - String trimmed = buf.toString(); - if (!blockWasInQualifier) { - trimmed = trimmed.trim(); - // trimmed = trimmed.replaceAll(doubleQualifier, - // String.valueOf(qualifier)); - } - - if (trimmed.length() == 1 && (trimmed.charAt(0) == delimiter || trimmed.charAt(0) == qualifier)) { - list.add(""); - } else { - list.add(trimmed); - } - blockWasInQualifier = false; - buf.delete(0, buf.length()); - } else if (buf.length() != 1 || buf.charAt(0) != qualifier) { - buf.append(currentChar); - } else { - buf.delete(0, buf.length()); - insideQualifier = false; - list.add(""); - } - } else if (currentChar == qualifier) { - if (!insideQualifier && previousChar != qualifier) { - if (previousChar == delimiter || previousChar == 0 || previousChar == ' ') { - insideQualifier = true; - int l = buf.length(); - if (l > 0) { - buf.delete(0, l); // just entered a - // qualifier, remove - // whatever was - } - } else { - buf.append(currentChar); - } - } else { - insideQualifier = false; - blockWasInQualifier = true; - if (previousChar == qualifier) { - buf.append(qualifier); - insideQualifier = true; - previousChar = 0; - continue; - } - // last column (e.g. finishes with ") - if (i == size - 1) { - // list.add(trimmedLine.substring(startBlock, size - - // 1)); - list.add(buf.toString()); - buf.delete(0, buf.length()); - } - } - } - previousChar = currentChar; - } - - if (buf.length() > 0) { - list.add(buf.toString().trim()); - } else if (trimmedLine.charAt(size - 1) == delimiter) { - list.add(""); - } - - return list; - } -} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |