10204 - Adicionar linhas utilizando a função Gravarnl
Problema: Descrição do Problema: É possível gravar um exemplo da Função Gravarnl?
Adicionando linhas no final do arquivo?
Rotina / Tela: Regras, Relatórios.
Solução: Solução: Sim, é possível.
Segue dois exemplos abaixo:
@Exemplo 1@
definir numero vArq;
definir alfa vNomeArq;
definir numero vLeu;
Definir alfa vLinha;
definir lista vLinhas;
definir funcao AdicionaLinhaNaLista();
@ O objetivo dessa regra é abrir e ler o conteúdo de um arquivo existe, @
@ adicionando cada linha do arquivo em um registro na lista dinâmica. @
@ Após ler as linhas do arquivo, são adicionadas novas linha a lista. @
@ Após adicionar as linhas desejadas na lista, elas são gravadas no arquivo. @
vLinhas.DefinirCampos();
vLinhas.AdicionarCampo(Linha, Alfa);
vLinhas.EfetivarCampos();
vNomeArq = c://teste.txt;
vLinha = ;
@ Verifica se o arquivo já existe. @
se(ArqExiste(vNomeArq)){
@ Abre o arquivo para leitura. @
vArq = Abrir(vNomeArq, Lernl);
vLeu = Lernl(vArq, vLinha);
enquanto(vLeu = 1){
@ Adiciona as linhas lidas na lista dinâmica. @
AdicionaLinhaNaLista();
@ Lê a próxima linha. @
vLeu = Lernl(vArq, vLinha);
}
@ Fecha o arquivo para liberá-lo. @
Fechar(vArq);
}
@ Abre o arquivo para escrita. @
vArq = Abrir(vNomeArq, Gravarnl);
vLeu = 0;
@ Adiciona uma linha separadora, apenas para ilustrar. @
vLinha = *****************************************;
AdicionaLinhaNaLista();
@ Adiciona algumas linhas extras na lista para ilustrar. @
enquanto(vLeu < 5){
vLeu++;
IntParaAlfa(vLeu, vLinha);
vLinha = Linha + vLinha;
AdicionaLinhaNaLista();
}
@ Grava todas as linhas da lista no arquivo. @
vLinhas.Primeiro();
enquanto(vLinhas.FDA = 0){
vLinha = vLinhas.Linha;
Gravarnl(vArq, vLinha);
vLinhas.Proximo();
}
Fechar(vArq);
Mensagem(Retorna, Arquivo salvo com sucesso.);
funcao AdicionaLinhaNaLista();{
vLinhas.Adicionar();
vLinhas.Linha = vLinha;
vLinhas.Gravar();
}
@Exemplo 2@
definir numero ArqEntrada;
definir numero ArqSaida;
definir alfa Dados;
Definir Alfa XLido;
Definir Alfa Enter;
Definir Alfa Linefeed;
QtdLido =0;
Linhas = 0;
CaracterParaAlfa(13, enter);
CaracterParaAlfa(10, LineFeed);
ArqSaida = Abrir(c://Arquivo2.txt, Gravarnl);
enquanto (QtdLido <= 10)
{
QtdLido=QtdLido+1;
}
Linhas = QtdLido + 10;
enquanto (QtdLido <= Linhas)
{
IntparaAlfa( QtdLido, xlido);
Dados= Carla + Xlido @+ LineFeed +enter@;
Gravarnl(ArqSaida, Dados);
QtdLido=QtdLido+1;
}
Fechar(ArqSaida);
Adicionando linhas no final do arquivo?
Rotina / Tela: Regras, Relatórios.
Solução: Solução: Sim, é possível.
Segue dois exemplos abaixo:
@Exemplo 1@
definir numero vArq;
definir alfa vNomeArq;
definir numero vLeu;
Definir alfa vLinha;
definir lista vLinhas;
definir funcao AdicionaLinhaNaLista();
@ O objetivo dessa regra é abrir e ler o conteúdo de um arquivo existe, @
@ adicionando cada linha do arquivo em um registro na lista dinâmica. @
@ Após ler as linhas do arquivo, são adicionadas novas linha a lista. @
@ Após adicionar as linhas desejadas na lista, elas são gravadas no arquivo. @
vLinhas.DefinirCampos();
vLinhas.AdicionarCampo(Linha, Alfa);
vLinhas.EfetivarCampos();
vNomeArq = c://teste.txt;
vLinha = ;
@ Verifica se o arquivo já existe. @
se(ArqExiste(vNomeArq)){
@ Abre o arquivo para leitura. @
vArq = Abrir(vNomeArq, Lernl);
vLeu = Lernl(vArq, vLinha);
enquanto(vLeu = 1){
@ Adiciona as linhas lidas na lista dinâmica. @
AdicionaLinhaNaLista();
@ Lê a próxima linha. @
vLeu = Lernl(vArq, vLinha);
}
@ Fecha o arquivo para liberá-lo. @
Fechar(vArq);
}
@ Abre o arquivo para escrita. @
vArq = Abrir(vNomeArq, Gravarnl);
vLeu = 0;
@ Adiciona uma linha separadora, apenas para ilustrar. @
vLinha = *****************************************;
AdicionaLinhaNaLista();
@ Adiciona algumas linhas extras na lista para ilustrar. @
enquanto(vLeu < 5){
vLeu++;
IntParaAlfa(vLeu, vLinha);
vLinha = Linha + vLinha;
AdicionaLinhaNaLista();
}
@ Grava todas as linhas da lista no arquivo. @
vLinhas.Primeiro();
enquanto(vLinhas.FDA = 0){
vLinha = vLinhas.Linha;
Gravarnl(vArq, vLinha);
vLinhas.Proximo();
}
Fechar(vArq);
Mensagem(Retorna, Arquivo salvo com sucesso.);
funcao AdicionaLinhaNaLista();{
vLinhas.Adicionar();
vLinhas.Linha = vLinha;
vLinhas.Gravar();
}
@Exemplo 2@
definir numero ArqEntrada;
definir numero ArqSaida;
definir alfa Dados;
Definir Alfa XLido;
Definir Alfa Enter;
Definir Alfa Linefeed;
QtdLido =0;
Linhas = 0;
CaracterParaAlfa(13, enter);
CaracterParaAlfa(10, LineFeed);
ArqSaida = Abrir(c://Arquivo2.txt, Gravarnl);
enquanto (QtdLido <= 10)
{
QtdLido=QtdLido+1;
}
Linhas = QtdLido + 10;
enquanto (QtdLido <= Linhas)
{
IntparaAlfa( QtdLido, xlido);
Dados= Carla + Xlido @+ LineFeed +enter@;
Gravarnl(ArqSaida, Dados);
QtdLido=QtdLido+1;
}
Fechar(ArqSaida);