Gerar arquivo txt de campos do formulario

Preciso gerar um arquivo ".txt" nesse modelo:

"ItemCod";"CodInternoSolicitacao";"ItemEstoqueUM";"ItemQtdSolicitada" 82020100,00;013164;"PT";75 11150022,00;013164;"CX";10

Que no caso são 4 campos do meu formulário.

Preciso gerar através de um botão, então fui atrás de algo e encontrei a seguinte função:

function createFile() { var object = new ActiveXObject("Scripting.FileSystemObject"); var file = object.CreateTextFile("C:\Hello.txt", true);

file.WriteLine('Hello World'); file.WriteLine('Hope is a thing with feathers, that perches on the soul.'); file.Close(); }

Fiz o teste, porém da um erro de "ActiveXObject is no defined".

Alguém pode me ajudar?

Wesley, ActiveX é um componente proprietário da Microsoft e só vai funcionar no IE.

Para esse tipo de situação, normalmente se utilizaria de um serviço no server que escreva o arquivo e retorne ele pra você. O seu botão faria o acionamento desse seu serviço.

Mas tu pode tentar usar Blob, dá uma pesquisada sobre. Tem alguns exemplos Stackoverflow Saving-generated-files-on-the-client-side

Mas eu não sei o quão compatível isso está entre os browsers...

Opa Rafael, obrigado pela dica, eu cheguei a pesquisar sobre, e achei uma solução que funcionou perfeitamente.

Eu pego quatro campos da minha tabela e populo meu txt, vou compartilhar!


function gerarTxt() {

    var linhas = $("#tblMaterialEstoque tbody tr").length;
    var materiais = document.getElementsByClassName('material');
    var tudo = "";

    for(var i = 1; i < linhas; i++){

        var idx = materiais[i].name.split("___")[1];

        var textoCodigo = document.getElementById("_codigo___" + idx).value;
        var textoRequisicao = document.getElementById("nr_requisicao").value;
        var textoUnidade = document.getElementById("unidade___" + idx).value;
        var textoQuantidade = document.getElementById("_quantidade___" + idx).value;
        var colunas = '"ItemCod";"CodInternoSolicitacao";"ItemEstoqueUM";"ItemQtdSolicitada" \n';

        //Montando a linha com os campos da tabela
        tudo += (textoCodigo + ",00" + ";" + textoRequisicao + ";" + '"' + textoUnidade + '"' + ";" + textoQuantidade + "\n");
    }

    var blob = new Blob([colunas, tudo], {//Montando a estrutura do arquivo
        type: 'text/plain'
    });

    var fileNameToSaveAs = "SOLIC";//Nome do arquivo

    var downloadLink = document.createElement("a");
    downloadLink.download = fileNameToSaveAs;
    downloadLink.innerHTML = "Download File";
    if (window.webkitURL != null) {

        downloadLink.href = window.webkitURL.createObjectURL(blob);

    } else {

        downloadLink.href = window.URL.createObjectURL(blob);
        downloadLink.onclick = destroyClickedElement;
        downloadLink.style.display = "none";
        document.body.appendChild(downloadLink);
    }

  downloadLink.click();
}