private void executaArquivoFuncionario() { try { string CaminhoOrigem = txtArqivoOrigem.Text; string CaminhoDestino = txtArquivoDestino.Text; //string CaminhoOrigem = "E:\\Pedro Barboza\\Downloads\\Ficha Resgistro_iliane.txt"; //string CaminhoDestino = "E:\\Pedro Barboza\\Downloads\\Teste.txt"; StreamReader str = new StreamReader(CaminhoOrigem, Encoding.GetEncoding(CultureInfo.GetCultureInfo("pt-BR").TextInfo.ANSICodePage)); StreamWriter stw = new StreamWriter(File.Open(CaminhoDestino, FileMode.CreateNew), Encoding.Default); StreamWriter stwReg = new StreamWriter(File.Open(CaminhoDestino.Substring(0, CaminhoDestino.Length - 4) + "-Registro.txt", FileMode.CreateNew), Encoding.Default); StreamWriter stwSal = new StreamWriter(File.Open(CaminhoDestino.Substring(0, CaminhoDestino.Length - 4) + "-Salario.txt", FileMode.CreateNew), Encoding.Default); StreamWriter stwFer = new StreamWriter(File.Open(CaminhoDestino.Substring(0, CaminhoDestino.Length - 4) + "-Ferias.txt", FileMode.CreateNew), Encoding.Default); StreamWriter stwAfa = new StreamWriter(File.Open(CaminhoDestino.Substring(0, CaminhoDestino.Length - 4) + "-Afastamento.txt", FileMode.CreateNew), Encoding.Default); StreamWriter stwSin = new StreamWriter(File.Open(CaminhoDestino.Substring(0, CaminhoDestino.Length - 4) + "-Sindicato.txt", FileMode.CreateNew), Encoding.Default); StreamWriter stwEsc = new StreamWriter(File.Open(CaminhoDestino.Substring(0, CaminhoDestino.Length - 4) + "-Escala.txt", FileMode.CreateNew), Encoding.Default); StreamWriter stwFic = new StreamWriter(File.Open(CaminhoDestino.Substring(0, CaminhoDestino.Length - 4) + "-Ficha.txt", FileMode.CreateNew), Encoding.Default); StreamWriter stwFun = new StreamWriter(File.Open(CaminhoDestino.Substring(0, CaminhoDestino.Length - 4) + "-Funcao.txt", FileMode.CreateNew), Encoding.Default); StreamWriter stwDep = new StreamWriter(File.Open(CaminhoDestino.Substring(0, CaminhoDestino.Length - 4) + "-Dependente.txt", FileMode.CreateNew), Encoding.Default); string[] cabecalho = new string[80] { "HESCHOR_ADMISSAO", "EMPRESA", "NOME", "ORDEM", "REGISTRO", "IMPRIMEFOTO", "END", "TELEFONE", "CEP", "MUNIC", "UF", "ESTCIVIL", "DATNASC", "SEXO", "INSTRUCAO", "NAC", "ANO", "CTPS", "SERIE", "MOD", "RG", "ORGAO", "ESTEMIS", "DATA", "VINCFGTS", "PIS", "CIC", "DATADM", "TITULO", "CNH", "FUNCAO", "CBO", "PAGTO", "TIP", "SAL", "HORARIO", "INTERVALO", "PAI", "MAE", "REL - F", "NACPAI", "NACMAE", "CERTRES", "OBS", "ISENTOPONTO", "BRANCO", "DATFICHA", "CR", "HABPROF", "NOM - CONREG", "NUM - CONREG", "REG - CONREG", "SIG - CONREG", "OCIPA", "TESTE", "CNPJ - CAR", "NOMCOMER - CAR", "END - CAR", "BAIRRO - CAR", "CEP - CAR", "CIDADE - CAR", "CIDADE - ASSINATURA", "DEMISSAO - ASSINATURA", "UF - CAR", "CARIMBO", "BAIRRO", "MUNIC - NASC", "UFNASC", "DOCIDENTIFRNE", "DTVALIDRNE", "TPVISTO", "DTVALIDCTPS", "DATCARTRABALHO", "DATPIS", "CARGO", "ADICINS", "ADICPER", "ASSINA", "PFISICA", "REGEMP" }; string cabecalho2 = ""; for (int i = 0; i < 80; i++) { if (i < 79) { cabecalho2 = cabecalho2 + cabecalho[i] + ";"; } else { cabecalho2 = cabecalho2 + cabecalho[i]; } } Registro reg = new Registro(); Afastamento afa = new Afastamento(); Dependente dep = new Dependente(); Escala esc = new Escala(); Ferias fer = new Ferias(); Ficha fic = new Ficha(); Funcao fun = new Funcao(); Salario sal = new Salario(); Sindicato sin = new Sindicato(); //str = File.OpenText(CaminhoOrigem); //stw = File.CreateText(CaminhoDestino); stw.WriteLine(cabecalho2); stwReg.WriteLine(reg.retornaCabecalho()); stwAfa.WriteLine(afa.retornaCabecalho()); stwDep.WriteLine(dep.retornaCabecalho()); stwEsc.WriteLine(esc.retornaCabecalho()); stwFer.WriteLine(fer.retornaCabecalho()); stwFic.WriteLine(fic.retornaCabecalho()); stwFun.WriteLine(fun.retornaCabecalho()); stwSal.WriteLine(sal.retornaCabecalho()); stwSin.WriteLine(sin.retornaCabecalho()); string linha_ler = ""; string linha_gravar = ""; int posicao; int contador = 0; bool ativador = true; string linha_anterior = "0!0"; while (str.EndOfStream != true) { linha_ler = str.ReadLine(); if (linha_ler != "") { posicao = linha_ler.IndexOf("!"); if (posicao > 0) { if (linha_ler == "FIM_VISUALIZADOR!") { ativador = false; } else if (linha_anterior == "FIM!") { ativador = true; contador = 0; } } if (ativador) { if (posicao < 0 || linha_ler.Substring(0, posicao) == cabecalho[contador]) { if (contador < 79) { linha_gravar = linha_gravar + linha_ler.Substring(posicao + 1).Trim() + ";"; contador = contador + 1; } else { linha_gravar = linha_gravar + linha_ler.Substring(posicao + 1).Trim(); stw.WriteLine(linha_gravar); linha_gravar = ""; contador = 0; } } else { if (contador < 79) { linha_gravar = linha_gravar + ";"; contador = contador + 1; } } } else { if (posicao > 0) { if (linha_ler != "FIM_VISUALIZADOR!") { if (contador > 24) { switch (linha_ler.Substring(0, posicao)) { case "HSAL": linha_gravar = empresa + ";" + cgc + ";" + registro + ";"; linha_gravar = sal.montaLinhaGravar(linha_gravar, linha_ler); stwSal.WriteLine(linha_gravar); linha_gravar = ""; break; case "AFAST": linha_gravar = empresa + ";" + cgc + ";" + registro + ";"; linha_gravar = afa.montaLinhaGravar(linha_gravar, linha_ler); stwAfa.WriteLine(linha_gravar); linha_gravar = ""; break; case "AFAST_OUTROS": linha_gravar = empresa + ";" + cgc + ";" + registro + ";"; linha_gravar = afa.montaLinhaGravar(linha_gravar, linha_ler); stwAfa.WriteLine(linha_gravar); linha_gravar = ""; break; case "DEPENDENTE": linha_gravar = empresa + ";" + cgc + ";" + registro + ";"; linha_gravar = dep.montaLinhaGravar(linha_gravar, linha_ler); stwDep.WriteLine(linha_gravar); linha_gravar = ""; break; case "HESCHOR": linha_gravar = empresa + ";" + cgc + ";" + registro + ";"; linha_gravar = esc.montaLinhaGravar(linha_gravar, linha_ler); stwEsc.WriteLine(linha_gravar); linha_gravar = ""; break; case "FERIAS": linha_gravar = empresa + ";" + cgc + ";" + registro + ";"; linha_gravar = fer.montaLinhaGravar(linha_gravar, linha_ler); stwFer.WriteLine(linha_gravar); linha_gravar = ""; break; case "FICHAANOT": linha_gravar = empresa + ";" + cgc + ";" + registro + ";"; linha_gravar = fic.montaLinhaGravar(linha_gravar, linha_ler); stwFic.WriteLine(linha_gravar); linha_gravar = ""; break; case "HFUNCAO": linha_gravar = empresa + ";" + cgc + ";" + registro + ";"; linha_gravar = fun.montaLinhaGravar(linha_gravar, linha_ler); stwFun.WriteLine(linha_gravar); linha_gravar = ""; break; case "SINDIC": linha_gravar = empresa + ";" + cgc + ";" + registro + ";"; linha_gravar = sin.montaLinhaGravar(linha_gravar, linha_ler); stwSin.WriteLine(linha_gravar); linha_gravar = ""; break; default: break; } } else { if (contador == 0) { empresa = linha_ler.Substring(posicao + 1).Trim(); } else if (contador == 3) { cgc = linha_ler.Substring(posicao + 1).Trim(); } else if (contador == 7) { registro = linha_ler.Substring(posicao + 1).Trim(); } linha_gravar = reg.montaLinhaGravar(linha_gravar, linha_ler, contador, posicao); if (contador == 24) { stwReg.WriteLine(linha_gravar); linha_gravar = ""; //contador = 0; } contador = contador + 1; } } } } linha_anterior = linha_ler; } } str.Close(); stw.Close(); stwReg.Close(); stwSal.Close(); stwFer.Close(); stwAfa.Close(); stwSin.Close(); stwEsc.Close(); stwFic.Close(); stwFun.Close(); stwDep.Close(); MessageBox.Show("A geração do arquivo foi concluída com sucesso!", "Informação", MessageBoxButtons.OK, MessageBoxIcon.Information); } catch (Exception ex) { MessageBox.Show("Ocorreu um erro durante a geração do arquivo! " + ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); } }