Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

mruoppolo

Salvar dados de uma tabela em um arquivo de texto

Recommended Posts

Olá, tudo bem?

Eu estou com um problema complicadinho aqui, eu estou gerando uma tabela com alguns dados já preenchidos e outros que o usuário mesmo preenche, é uma combinação pra jogar e ganhar na loto (Sim, eu nunca ganhei, mas criei uma combinação que com certeza vai fazer você ganhar hahaha). Então o meu código da tabela é esse aqui:

<div class="col-md-12">
	<div id="printable" class="table-responsive">
		<table id="tabela" class="table table-bordered table-striped table-hover">
			<tr id="1">
				<td>5</td>
				<td id="comb-1-a"></td>
				<td id="comb-1-b"></td>
				<td id="comb-1-c"></td>
				<td id="comb-1-d"></td>
				<td id="comb-1-e"></td>
				<td id="comb-1-f"></td>
				<td id="comb-1-g"></td>
				<td id="comb-1-h"></td>
				<td id="comb-1-i"></td>
				<td id="comb-1-j"></td>
				<td id="comb-1-k"></td>
				<td id="comb-1-l"></td>
				<td id="comb-1-m"></td>
				<td id="comb-1-n"></td>
			</tr>
			<tr id="2">
				<td>6</td>
				<td id="comb-2-a"></td>
				<td id="comb-2-b"></td>
				<td id="comb-2-c"></td>
				<td id="comb-2-d"></td>
				<td id="comb-2-e"></td>
				<td id="comb-2-f"></td>
				<td id="comb-2-g"></td>
				<td id="comb-2-h"></td>
				<td id="comb-2-i"></td>
				<td id="comb-2-j"></td>
				<td id="comb-2-k"></td>
				<td id="comb-2-l"></td>
				<td id="comb-2-m"></td>
				<td id="comb-2-n"></td>
			</tr>
			<tr id="3">
				<td>7</td>
				<td id="comb-3-a"></td>
				<td id="comb-3-b"></td>
				<td id="comb-3-c"></td>
				<td id="comb-3-d"></td>
				<td id="comb-3-e"></td>
				<td id="comb-3-f"></td>
				<td id="comb-3-g"></td>
				<td id="comb-3-h"></td>
				<td id="comb-3-i"></td>
				<td id="comb-3-j"></td>
				<td id="comb-3-k"></td>
				<td id="comb-3-l"></td>
				<td id="comb-3-m"></td>
				<td id="comb-3-n"></td>
			</tr>
			<tr id="4">
				<td>12</td>
				<td id="comb-4-a"></td>
				<td id="comb-4-b"></td>
				<td id="comb-4-c"></td>
				<td id="comb-4-d"></td>
				<td id="comb-4-e"></td>
				<td id="comb-4-f"></td>
				<td id="comb-4-g"></td>
				<td id="comb-4-h"></td>
				<td id="comb-4-i"></td>
				<td id="comb-4-j"></td>
				<td id="comb-4-k"></td>
				<td id="comb-4-l"></td>
				<td id="comb-4-m"></td>
				<td id="comb-4-n"></td>
			</tr>
			<tr id="5">
				<td>13</td>
				<td id="comb-5-a"></td>
				<td id="comb-5-b"></td>
				<td id="comb-5-c"></td>
				<td id="comb-5-d"></td>
				<td id="comb-5-e"></td>
				<td id="comb-5-f"></td>
				<td id="comb-5-g"></td>
				<td id="comb-5-h"></td>
				<td id="comb-5-i"></td>
				<td id="comb-5-j"></td>
				<td id="comb-5-k"></td>
				<td id="comb-5-l"></td>
				<td id="comb-5-m"></td>
				<td id="comb-5-n"></td>
			</tr>
			<tr id="6">
				<td>14</td>
				<td id="comb-6-a"></td>
				<td id="comb-6-b"></td>
				<td id="comb-6-c"></td>
				<td id="comb-6-d"></td>
				<td id="comb-6-e"></td>
				<td id="comb-6-f"></td>
				<td id="comb-6-g"></td>
				<td id="comb-6-h"></td>
				<td id="comb-6-i"></td>
				<td id="comb-6-j"></td>
				<td id="comb-6-k"></td>
				<td id="comb-6-l"></td>
				<td id="comb-6-m"></td>
				<td id="comb-6-n"></td>
			</tr>
			<tr id="7">
				<td>19</td>
				<td id="comb-7-a"></td>
				<td id="comb-7-b"></td>
				<td id="comb-7-c"></td>
				<td id="comb-7-d"></td>
				<td id="comb-7-e"></td>
				<td id="comb-7-f"></td>
				<td id="comb-7-g"></td>
				<td id="comb-7-h"></td>
				<td id="comb-7-i"></td>
				<td id="comb-7-j"></td>
				<td id="comb-7-k"></td>
				<td id="comb-7-l"></td>
				<td id="comb-7-m"></td>
				<td id="comb-7-n"></td>
			</tr>
			<tr id="8">
				<td>20</td>
				<td id="comb-8-a"></td>
				<td id="comb-8-b"></td>
				<td id="comb-8-c"></td>
				<td id="comb-8-d"></td>
				<td id="comb-8-e"></td>
				<td id="comb-8-f"></td>
				<td id="comb-8-g"></td>
				<td id="comb-8-h"></td>
				<td id="comb-8-i"></td>
				<td id="comb-8-j"></td>
				<td id="comb-8-k"></td>
				<td id="comb-8-l"></td>
				<td id="comb-8-m"></td>
				<td id="comb-8-n"></td>
			</tr>
			<tr id="9">
				<td>21</td>
				<td id="comb-9-a"></td>
				<td id="comb-9-b"></td>
				<td id="comb-9-c"></td>
				<td id="comb-9-d"></td>
				<td id="comb-9-e"></td>
				<td id="comb-9-f"></td>
				<td id="comb-9-g"></td>
				<td id="comb-9-h"></td>
				<td id="comb-9-i"></td>
				<td id="comb-9-j"></td>
				<td id="comb-9-k"></td>
				<td id="comb-9-l"></td>
				<td id="comb-9-m"></td>
				<td id="comb-9-n"></td>
			</tr>
		</table>
		<div id="resultado"></div>
	</div>
</div>

Eu preciso salvar todas as combinações feitas (o primeiro número já esta preenchido e os outros números o usuário preenche em um input que joga dentro das td) precisam ser salvas em um arquivo de texto.

Eu criei um javascript que joga as combinações nessa div resultado (que é display:none;) e de dentro dela joga as combinações em um arquivo de texto, que é essa função aqui:

function salvar() {

	var linha = document.getElementById('tabela');
	var colunas = linha.getElementsByTagName('td');	
	var resultado = document.getElementById('resultado');
	var td = new Array();

	for (i=0;i<9;i++)
	{
		td[i] = colunas[i].firstChild.nodeValue;
		var novaLinha = td.toString();
		var finalizado = novaLinha.replace(/,/g, ' ');
		resultado.innerText = finalizado;
	}


	var div = document.getElementById('resultado').innerText;

	var file = new File([div], "loto.txt", {type: "text/plain;charset=utf-8"});
	saveAs(file);

}

Porém ela só esta pegando a primeira linha, eu preciso salvar todas as linhas uma por uma, você sabe como posso fazer isso?? Acho que se eu implementar esse código só ajudando o sistema a percorrer todas as tr, afinal as td ele já percorre, vai funcionar direitinho.

Sabe como fazer??

Muito Obrigado :D

Compartilhar este post


Link para o post
Compartilhar em outros sites


function salvar() {

var linha = document.getElementById('tabela');

var colunas = linha.getElementsByTagName('td');

var resultado = document.getElementById('resultado');

var td = new Array();

for (i=0;i<9;i++)

{

td = colunas.firstChild.nodeValue;

var novaLinha = td.toString();

var finalizado = novaLinha.replace(/,/g, ' ');

resultado.innerText += finalizado;

}

var div = document.getElementById('resultado').text();

var file = new File([div], "loto.txt", {type: "text/plain;charset=utf-8"});

saveAs(file);

}

Compartilhar este post


Link para o post
Compartilhar em outros sites
function salvar() {

	var linha = document.getElementById('tabela');
	var colunas = linha.getElementsByTagName('td');	
	var resultado = document.getElementById('resultado');
	var td = new Array();

	for (i=0;i<9;i++)
	{
		td[i] = colunas[i].firstChild.nodeValue;
		var novaLinha = td.toString();
		var finalizado = novaLinha.replace(/,/g, ' ');
		resultado.innerText += finalizado;
	}


	var div = document.getElementById('resultado').text();

	var file = new File([div], "loto.txt", {type: "text/plain;charset=utf-8"});
	saveAs(file);

}

Ygor, muito obrigado por sua ajuda, porém não exatamente resolveu meu problema, no caso só repetiu os dados da primeira linha, ele não pegou a segunda linha, ele repetiu a primeira linha 9 vezes, eu preciso que ele pego os dados das 9 linhas, você sabe como fazer?

Obrigado :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fazendo desta forma aqui:

function salvar() {

	var tabela = document.getElementById('tabela');
	var linhas = tabela.getElementsByTagName('tr');	
	var colunas = tabela.getElementsByTagName('td');	
	var resultado = document.getElementById('resultado');
	var td = new Array();

	for (i=0;i<colunas.length;i++) {

			td[i] = colunas[i].firstChild.nodeValue;
			var novaLinha = td.toString();
			var finalizado = novaLinha.replace(/,/g, ' ');
			var final = finalizado;

			resultado.innerHTML = final;
	}

}

Eu consigo pegar todos os dados de todas as tds, porém coloca tudo como uma única linha, eu precisava que a cada 15 td tivesse uma separação, porque cada tr tem 15 td certinho.

Sabe como fazer?

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fazendo desta forma aqui:

function salvar() {

	var tabela = document.getElementById('tabela');
	var linhas = tabela.getElementsByTagName('tr');	
	var colunas = tabela.getElementsByTagName('td');	
	var resultado = document.getElementById('resultado');
	var td = new Array();

	for (i=0;i<colunas.length;i++) {

			td[i] = colunas[i].firstChild.nodeValue;
			var novaLinha = td.toString();
			var finalizado = novaLinha.replace(/,/g, ' ');
			var final = finalizado;

			resultado.innerHTML = final;
	}

}

Eu consigo pegar todos os dados de todas as tds, porém coloca tudo como uma única linha, eu precisava que a cada 15 td tivesse uma separação, porque cada tr tem 15 td certinho.

Sabe como fazer?

Obrigado

experimenta colocar

linha = i-1;

if(linha==colunas.length){

resultado.innerHTML = "pesquisa como é a quebra de linha no javaescriptt, pode ser \n ou <br>";

}

esse if verifica se esta na ultima linha da coluna, se tiver adiciona uma quebra de linha

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fazendo desta forma aqui:

function salvar() {

	var tabela = document.getElementById('tabela');
	var linhas = tabela.getElementsByTagName('tr');	
	var colunas = tabela.getElementsByTagName('td');	
	var resultado = document.getElementById('resultado');
	var td = new Array();

	for (i=0;i<colunas.length;i++) {

			td[i] = colunas[i].firstChild.nodeValue;
			var novaLinha = td.toString();
			var finalizado = novaLinha.replace(/,/g, ' ');
			var final = finalizado;

			resultado.innerHTML = final;
	}

}

Eu consigo pegar todos os dados de todas as tds, porém coloca tudo como uma única linha, eu precisava que a cada 15 td tivesse uma separação, porque cada tr tem 15 td certinho.

Sabe como fazer?

Obrigado

experimenta colocar

linha = i-1;

if(linha==colunas.length){

resultado.innerHTML = "pesquisa como é a quebra de linha no javaescriptt, pode ser \n ou <br>";

}

esse if verifica se esta na ultima linha da coluna, se tiver adiciona uma quebra de linha

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fazendo desta forma aqui:

function salvar() {

var tabela = document.getElementById('tabela');

var linhas = tabela.getElementsByTagName('tr');

var colunas = tabela.getElementsByTagName('td');

var resultado = document.getElementById('resultado');

var td = new Array();

for (i=0;i<colunas.length;i++) {

td = colunas.firstChild.nodeValue;

var novaLinha = td.toString();

var finalizado = novaLinha.replace(/,/g, ' ');

var final = finalizado;

resultado.innerHTML = final;

}

}

Eu consigo pegar todos os dados de todas as tds, porém coloca tudo como uma única linha, eu precisava que a cada 15 td tivesse uma separação, porque cada tr tem 15 td certinho.

Sabe como fazer?

Obrigado

experimenta colocar

linha = i-1;

if(linha==colunas.length){

resultado.innerHTML = "pesquisa como é a quebra de linha no javaescriptt, pode ser \n ou <br>";

}

esse if verifica se esta na ultima linha da coluna, se tiver adiciona uma quebra de linha

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fazendo desta forma aqui:

function salvar() {


	var tabela = document.getElementById('tabela');
	var linhas = tabela.getElementsByTagName('tr');	
	var colunas = tabela.getElementsByTagName('td');	
	var resultado = document.getElementById('resultado');
	var td = new Array();

	for (i=0;i<colunas.length;i++) {

			td[i] = colunas[i].firstChild.nodeValue;
			var novaLinha = td.toString();
			saida = "";
			q = novaLinha.split(",");

			for(i = 0; i < q.length; i++){
			    if(i % 15 == 0){
			        saida = saida + (q[i]) + "\r\n";
			    }else{
			        saida = saida + (q[i]) + " ";
			    }
			}

			saida = saida + q.pop();

			resultado.innerHTML = saida;
	}

	var file = new File([saida], "loto.txt", {type: "text/plain;charset=utf-8"});
	saveAs(file);

}

Ele me da este resultado:

5
 64  32  89  43  73  65  87 
7  54  76  56  54  87  09  5
 64  32  89  43  73  65  87 
13  54  76  56  54  87  09  5
 64  32  89  43  73  65  87 
19  54  76  56  54  87  09  5
 64  32  89  43  73  65  87 
21  54  76  56  54  87  09  6
 64  32  89  43  73  65  87 
12  54  76  56  54  87  09  6
 64  32  89  43  73  65  87 
14  54  76  56  54  87  09  6
 64  32  89  43  73  65  87 
20  54  76  56  54  87  09  6
 64  32  89  43  73  65  87 
12  54  76  56  54  87  09  7
 64  32  89  43  73  65  87 
14  54  76  56  54  87  09  7
 64  32  89  43  73  65  87 
20  54  76  56  54  87  09  7
 64  32  89  43  73  65  87 
13  54  76  56  54  87  09  12
 64  32  89  43  73  65  87 
19  54  76  56  54  87  09  12
 64  32  89  43  73  65  87 
21  54  76  56  54  87  09  13
 64  32  89  43  73  65  87 
19  54  76  56  54  87  09  13
 64  32  89  43  73  65  87 
21  54  76  56  54  87  09  14
 64  32  89  43  73  65  87 
20  54  76  56  54  87  09  14
 64  32  89  43  73  65  87 
20  54  76  56  54  87  09  19
 64  32  89  43  73  65  87 
21  54  76  56  54  87  09 09

Que é bem próximo da minha necessidade, porém ele não esta pegando as 2 primeiras tds da primeira linha e esta colocando 2 espaços e não esta colocando as 15, esse negócio é muito complicado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.