Revision 47506 trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.file/org.gvsig.fmap.dal.file.csv/src/main/java/org/gvsig/fmap/dal/store/csv/virtualrows/SuperCSVList.java

View differences:

SuperCSVList.java
5 5
 */
6 6
package org.gvsig.fmap.dal.store.csv.virtualrows;
7 7

  
8
import java.io.BufferedReader;
8 9
import java.io.File;
9 10
import java.io.IOException;
10 11
import java.nio.charset.Charset;
11 12
import java.util.Date;
12 13
import java.util.List;
14
import java.util.function.Function;
13 15
import org.apache.commons.io.FilenameUtils;
14 16
import org.apache.commons.io.IOUtils;
15 17
import org.apache.commons.io.input.CloseShieldReader;
......
64 66
        new DefaultLibrariesInitializer().fullInitialize();
65 67
        
66 68
        String fname;
67
        fname = "/home/fdiaz/Descargas/origen_coordenadas.csv";
69
        fname = "/home/fdiaz/Descargas/error_union_tablas/Expedientes_CON_REFCAT_trimmed.csv";
70
//        fname = "/home/fdiaz/Descargas/origen_coordenadas.csv";
68 71
//        fname = "/home/jjdelcerro/Descargas/test/origen_coordenadas.csv";
69 72
//        fname = "/home/jjdelcerro/Descargas/test/esp_poblaciones.csv";
70 73
//        fname = "/home/jjdelcerro/Descargas/test/esp_provincias.csv";
......
86 89
        });
87 90
        SimpleTaskStatus status = taskStatusManager.createDefaultSimpleTaskStatus(data_file.getName());
88 91
        status.add();
89

  
92
        Function<BufferedReader, Integer> numberOfLinesInRecord = (BufferedReader breader) -> {
93
            CloseShieldReader theReader = CloseShieldReader.wrap(breader);
94
            CsvListReader parser = new CsvListReader(theReader, CsvPreference.EXCEL_NORTH_EUROPE_PREFERENCE);
95
            try {
96
                List<String> values = parser.read();
97
            } catch (IOException ex) {
98
                return 1;
99
            }
100
            return parser.getLineNumber();
101
        };
90 102
        RandomAccessFileReader reader = new RandomAccessFileReader(data_file, "UTF-8");
91
        RandomAccessFileIndex index_lines = reader.createOrOpenIndexOfLines(index_file, FILTER_NONE, null);
103
        RandomAccessFileIndex index_lines = reader.createIndexOfLines(index_file, false, FILTER_NONE, null, numberOfLinesInRecord);
92 104

  
93 105
        CSVList csv = new SuperCSVList(reader, index_lines, 0);
94 106
        System.out.println("Lines " + csv.size());

Also available in: Unified diff