#author("2026-01-24T15:08:39+09:00","","") * to_grid, to_flat [#a41302ee] #author("2026-02-02T11:49:45+09:00","","") stirng[] to_grid(lines) { csvgrid = new csvparser(lines).convert(); tsvgrid = new tsvparser(lines).convert(); if( getMaxRow(csvgrid) >= getMaxRow(tsvgrid) ) { return csvgrid; } else { return tsvgrid; } } class parser { string[] flat; parser(lines) { flat = lines; } string[] getRecord(); // get 1record string[] 1convert() { grid = {}; prevNrow = -1; for(record =getRecord()) { gridRecord = convert(record); // \t -> PIPE_MARKなど nextNrow = getNrow(grid); if(prevNrow != -1 && prevNrow != nextNrow) { grid += getMetaData(); } prevNrow = nextNrow; grid += gridRecord; } } } class csvparser extends parser { string[] getRecord() { // parse csv : <- flat } } class tsvparser extends parser { string[] getRecord() { // parse tsv : <- flat } } stirng[] to_flat(grid) { ... }