Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.05.2013, 16:41
Аватар для Paulyyy
Интересующийся
Отправить личное сообщение для Paulyyy Посмотреть профиль Найти все сообщения от Paulyyy
 
Регистрация: 01.05.2013
Сообщений: 21

как форматировать колонку ..
Всем привет. Есть csv файл с примерным содержанием ..
Account Number,"Name","Company"
01-000667,"George P Schell","Market Place Products"
01-002423,"Marc S Brittan","Madson & Huth Communication Co"...

по сколько javascript на прямую не работает с файлами и по скольку у меня нет опыта с серверной частью, данные файла были вставлены в в body.. вопрос.. как можно обратиться к колонке Name и поменять формат с Name, Middle Initial, Last Name на формат Name, Last Name, Middle Initial для всех имен?
Заранее спасибо!
Ответить с цитированием
  #2 (permalink)  
Старый 01.05.2013, 19:07
Аватар для Paulyyy
Интересующийся
Отправить личное сообщение для Paulyyy Посмотреть профиль Найти все сообщения от Paulyyy
 
Регистрация: 01.05.2013
Сообщений: 21

К примеру. Можно ли обратиться к колонке Name и все что ниже нее отсортировать чтобы отображалось в браузере не George P Schell а George Schell P и так все ниже стоящие имена?
Буду очень благодарна! ..)
Изображения:
Тип файла: jpg Безымянный.jpg (14.1 Кб, 11 просмотров)
Ответить с цитированием
  #3 (permalink)  
Старый 02.05.2013, 23:51
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Сообщение от Paulyyy
по скольку у меня нет опыта с серверной частью, данные файла были вставлены в в body
Хоть бы теги табличные при этом добавил бы...

Сообщение от Paulyyy
Можно ли обратиться к колонке Name
Нет у тебя никакой колонки... Есть гольный текст и ничего более.
Ответить с цитированием
  #4 (permalink)  
Старый 03.05.2013, 08:22
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,491

Вообще в современных браузерах вполне себе работает с файлами :
<!DOCTYPE HTML>
<html lang="ru-RU">
<head>
	<meta charset="UTF-8">
	<title></title>
	<style type="text/css">
	*{margin:0;padding:0}
	html, body{
		width: 100%;
		height: 100%;
	}
	
	html, body, textarea, input{
		font: 20px serif;
		background-color: #220;
		color: #ddf;
	}
	
	textarea{width: 100%;
		height: 90%;
		border: none;
	}
	</style>
<script type="text/javascript">
function read(files){ //чтение файлов
	var i = files.length, 
		reader = new FileReader();

	reader.onload = function(){
		example( reader.result )
	};
	
	reader.readAsText(files[--i])
}

function arrayFromCSV( csv ){
	var lines = csv.split(/[\r\n]+/), i = lines.length, //разбиваем на строки
		array = new Array(i); // создаём массив
	
	while(i--) array[i] = lines[i].split(','); //разбиваем по запятым, и заполняем массив 

	return array
}

function arrayToCSV( array ){
	var csv = '';
	console.log(array)
	for(var i = 0, l = array.length; i<l; i++){
		csv += (array[i] && array[i].join(',') || '') + '\r\n';
	}
	return csv
}
	
	
function rearrangeCols( array, order ){ //поменять местами колонки
	var l = array.length,
		out = new Array(l);
	
	if(typeof order === 'number') order = Array.prototype.slice.call(arguments,1); //порядок может быть передан как массивом, ак и просто последовательно
	var i = order.length;
		
	while(l--){
		out[l] = new Array(i);
		for(var j = i; j--;){
			out[l][j] = array[l][order[j]];
		}
	}
	return out
}	

function rearrangeRows( array, order ){ //поменять местами ряды
	var l = array.length,
		out = [array[0]],
		def = array[0].length;
	
	if(typeof order === 'number') order = Array.prototype.slice.call(arguments,1);
		
	for(var i = 0, l = order.length; i<l; i++){
		out.push( array[order[i]+1] || new Array(def) );
	}
	
	return out
}	

function id(i){return document.getElementById(i)}


function example( csv ){
	var table = arrayFromCSV( csv ),
		text = id('textarea');
	
	
	text.value = arrayToCSV( table );	
	
	table = rearrangeCols( table, 0, 2, 1 ) 

	text.value += '\n===== rearrangeCols( table, 0, 2, 1 ) =====\n' +
		arrayToCSV( table );	
		
		
	table = rearrangeRows( table, 1, 2, 0 ) 

	text.value += '\n===== rearrangeRows( table, 0, 2, 1 ) =====\n' +
		arrayToCSV( table );	
		
		
	
	
	
	function rearrangeArray( array , first, second){ //меняет местами элементы массива
		var temp;
		temp = array[first];
		array[first] = array[second];
		array[second] = first;
		return array
	}
	
	
	
	function fixNames( array ){
		var i = array.length, 
			nameCell = 2; //орядковым номер ячесйки с именем
		
		while(i--){
			if(array[i][nameCell]){ //если ячейча с порядковым номером 2 существует
				var name = array[i][nameCell]
					.slice(1,-1)	//обрезаем кавычки
					.split(/\s+/);  //разбиваем по пробелу
				if(name.length === 3) name[2] = name.splice(1,1,name[2])[0]; //меняем порядок
				array[i][nameCell] = '"' + name.join(' ') + '"'; //склеиваем обратно
			}
		}	
			
		return array
	}
	
	text.value += '===== fixNames =====\n' +
		arrayToCSV( fixNames( table ) );	
		
}	
	
</script>
</head>
<body>
	<input  id="file" type="file" onchange="read(files)" />
	<textarea id="textarea"></textarea>
</body>
</html>


Сообщение от ksa Посмотреть сообщение
Нет у тебя никакой колонки... Есть гольный текст и ничего более.
CSV же, это какбэ потенциальная таблица.)
Тут хотят с помощью js решать вопросы к web-разработке не относящиеся, как раз такое люблю, потому помогу.))
__________________
29375, 35

Последний раз редактировалось Aetae, 03.05.2013 в 08:25.
Ответить с цитированием
  #5 (permalink)  
Старый 03.05.2013, 09:40
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Сообщение от Aetae
CSV же, это какбэ потенциальная таблица.)
Именно потенциальная. Только той потенцией еще воспользоваться нужно... Если тупо все в кучу свалить это будет просто голимый тескт с которым еще работать и работать...

Сообщение от Aetae
как раз такое люблю
Я наоборот противник создания таких проблем, а потом героического их решения...
Ответить с цитированием
  #6 (permalink)  
Старый 05.05.2013, 15:12
Аватар для Paulyyy
Интересующийся
Отправить личное сообщение для Paulyyy Посмотреть профиль Найти все сообщения от Paulyyy
 
Регистрация: 01.05.2013
Сообщений: 21

Aetae, cпасибо !!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как писать код который легко поддерживать, расширять, читать. Policeman Общие вопросы Javascript 3 24.03.2012 05:40
Как при быстром многократном клике по кнопке обрабатывать только первый клик battrack jQuery 3 22.03.2012 10:47
Как отловить обратное событие "click" ? jsuse Общие вопросы Javascript 2 18.01.2012 00:16
как реализовать передачу функции в функцию?? czp Общие вопросы Javascript 10 29.11.2011 19:21
Как сделать электронный каталог продукции? natarius Серверные языки и технологии 6 24.05.2009 20:56