1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- var tsvToArray = null;
- (function ($) {
- tsvToArray = {
- file: 'cells.txt',
- text: null,
- json: null,
- initLoadText: function (text) {
- this.text = text;
- return this.generateJSON();
- },
- numberOfTabs: function (text) {
- var count = 0;
- var index = 0;
- while (text.charAt(index++) === "\t") {
- count++;
- }
- return count;
- },
- generateJSON: function () {
- var self = this;
- var text = self.text;
- var lines = text.split(/\r\n|\r|\n/);
- self.generatedArray = [];
- var previousTabPosition = 0;
- var currentContent = null;
- var previousContent = null;
- $.each(lines, function (lineNumber, line) {
- var line = this;
- var content = line.replace(/\t/g, '');
- var tabPosition = self.numberOfTabs(line);
- currentContent = content.length ? content : currentContent;
- if (!self.generatedArray[lineNumber]) {
- self.generatedArray[lineNumber] = [];
- }
- if (tabPosition > previousTabPosition) {
- self.generatedArray[lineNumber] = self.autoFillArray(self.generatedArray[lineNumber], lineNumber, previousTabPosition, tabPosition, previousContent, currentContent);
- } else {
- self.generatedArray[lineNumber].push(content);
- previousTabPosition = tabPosition;
- previousContent = content;
- }
- });
- return self.generatedArray;
- },
- autoFillArray: function (array, lineNumber, previousTabPosition, currentTabPosition, previousContent, currentContent) {
- var self = this;
- var currentElementArray = [currentContent];
- var previousLineArray = self.generatedArray[lineNumber - 1];
- var pluckedArray = previousLineArray.slice(0, currentTabPosition);
- var newArray = pluckedArray.concat(currentElementArray);
- return newArray;
- },
- convertArrayToTabContentString: function(array){
- var newLines = [];
- for(var i = 0; i < array.length; i++){
- var lineArray = array[i];
- var lineArrayString = lineArray.join('\t');
- newLines.push(lineArrayString);
- }
- return newLines.join('\n');
- },
- getAutoFilledTabContent: function(text){
- var array = this.initLoadText(text);
- var string = this.convertArrayToTabContentString(array);
- return string;
- },
- init: function () {
-
- }
- };
- tsvToArray.init();
- })(jQuery);
|