Ir para conteúdo

Arquivado

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

Neto Dinizz

Excluir primeira e ultima linha de arquivo TXT

Recommended Posts

Bom dia,

 

Olá pessoal, gostaria de saber como posso excluir a primeira e ultima linha de um arquivo TXT.

 

Obs: Consigo abrir e ler o arquivo TXT.

 

Muito obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

de um split com o separador VbCrLf  exemplo:

 

dtxt = dados do arquivo TXT

 

vet = split(txt,VbCrLf)

 

for i = 1 to Ubound(vet)-1

if novotxt = "" then

novotxt = vet(i)

else

novotxt = novotxt & vbcrlf & vet(i)

end if

next

 

salve em arquivo a variável  novotxt 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

outro exemplo:

 

If oFS.FileExists("C:\Arquivos\Texto001.txt") = True Then
    Set oTS = oFS.OpenTextFile(Arquivo, ForReading)
    Set oTSB = oFS.OpenTextFile(sTemp, ForWriting, True)
    While Not oTS.AtEndOfStream = True
        sLinha = Empty
        sLinha = oTS.ReadLine
        If InStr(1, sLinha, Texto, vbTextCompare) = 0 Then
            oTSB.WriteLine sLinha
        End If
    Wend

lembrando que tem vários exemplos de como manipular texto aqui no fórum.

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por Salvatore
      Olá estou alguém poderia me ajudar a criar um botão no painel onde eu apago um conteúdo da .txt
       
      Código Abaixo
       
      Painel
      <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="icon" type="imagem/png" href="img/icon.png" /> <script language=javascript> senha = 'plsfodas'; senhadig = prompt("Digite a senha","") if (senha != senhadig){ alert('Acesso negado!'); top.location.href='index.php'; } </script> <title>Painel De Controle</title> <link href="css/bootstrap.min.css" rel="stylesheet"> <link href="http://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"> <script> $(function() { var wbbOpt = { buttons: "bold,italic,underline,|,img,link,|,code,quote" } $("#link").wysibb(wbbOpt); }) </script> </head> <body> <div class="container"> <div class="row"> <header class="col-sm-12"> <h1>Painel de Controle</h1> <p><a href="index.php" class="btn btn-info"><i class="fa fa-arrow-left"></i> Plugins</a></p><br/> </header> <div id="content-form" class="col-sm-12"> <?php if(isset($_POST['plugin']) && isset($_POST['valor']) && isset($_POST['link']) && isset($_POST['version'])) { $plugin = $_POST['plugin']; $valor = $_POST['valor']; $link = $_POST['link']; $version = $_POST['version']; $news = unserialize(file_get_contents('news.txt')); $news[] = array('plugin' => $plugin, 'version' => $version, 'valor' => $valor, 'link' => $link); file_put_contents('news.txt', serialize($news)); echo '<div class="alert alert-dismissible alert-success"><h4><i class="fa fa-check"></i> Concluido</h4><p>Informações adicionadas'; echo '<br/>'; echo '<a href="index.php" class="alert-link">Visualizar</a></p></div>'; } else { ?> <form action="" class="form-horizontal" method="post"> <div class="form-group"> <label class="col-sm-2 control-label" for="plugin">Nome do Plugin</label> <div class="col-sm-10"> <input class="form-control" type="text" name="plugin" id="plugin" placeholder="Plugin" autofocus required> </div> </div> <div class="form-group"> <label class="col-sm-2 control-label" for="version">Versão</label> <div class="col-sm-10"> <input class="form-control" type="text" name="version" id="version" placeholder="Version" autofocus required> </div> </div> <div class="form-group"> <label class="col-sm-2 control-label" for="valor">Valor</label> <div class="col-sm-10"> <input class="form-control" type="text" name="valor" id="valor" placeholder="valor" autofocus required> </div> </div> <div class="form-group"> <label class="col-sm-2 control-label" for="link">Link</label> <div class="col-sm-10"> <input class="form-control" type="text" name="link" id="link" placeholder="Link" autofocus required> </div> </div> <button class="btn btn-primary pull-right" type="submit"><i class="fa fa-plus"></i>Adicionar</button> </form> </div> <footer class="col-sm-12"> <p><i class="fa fa-copyright"></i> <a</p> </footer> </div> </div> </body> </html>  
      o meu arquivo txt fica assim, ai quando eu colocasse o id no input e clica no botão apaga apagasse 
      a:1:{i:0;a:4:{s:6:"plugin";s:4:"1212";s:7:"version";s:3:"121";s:5:"valor";s:1:"1";s:4:"link";s:3:"212";}}
       
    • Por samucaur
      Preciso gerar um relatório .txt dos produtos cadastrados separados em produtos ativos, inativos, falta implementar a parte de vendas no MENU PRINCIPAL. Tô apanhando muito em ponteiros sem alguém puder me ajudar ficaria muito grato, wlw galera.


      #include<iostream>
      #include<stdio.h>
      #include<stdlib.h>
      #include<conio.h>
      #include<windows.h>
      #include <locale.h>
      #include <sstream>
      #include <string> // ler e escrever um arquivo de texto
      #include <fstream> // ler e escrever um arquivo de texto


      using namespace std;

      struct cadastro{
      char nome[50];
      int ID;
      int quantidade;
      float preco;
      bool ativo;
      cadastro *prox;
      };


      cadastro * inserir(cadastro *inicio, cadastro *novo){
      cadastro *encontrar = NULL;
      cadastro * aux = inicio;
      if(inicio == NULL){
      inicio = novo;
      }else if(novo->ID > inicio->ID && inicio->prox==NULL){
      inicio->prox = novo;
      }else if(novo->ID < inicio->ID){
      novo->prox = inicio;//novo aponta pro prox que é o inicio ate então, o prox=inicio é um cara só
      inicio = novo;//inicio agora é o novo
      }else{
      while(aux->prox->ID < novo->ID && aux->prox->prox != NULL){//enquanto o novo for maior que o anterior
      aux=aux->prox;//aux é o ultimo que aponta para prox
      }
      //inserir o novo depois do aux
      //se for menor que o ultimo (saiu por causa do primeiro criterio)
      if(aux->prox->ID > novo->ID ){
      novo->prox = aux->prox; //aponta pro mesmo proximo do aux, ja que ele sera inserido depois do aux
      aux->prox = novo;
      }else{ //preciso inserir na ultima posicao
      //o aux esta na penultima posicao, tenho que me mover para a ultima
      aux = aux->prox;

      //depois de chegar na ultima posicao, insiro o novo elemento no final (prox)
      aux->prox = novo;
      }
      return inicio;
      }
      }



      cadastro * alterar (cadastro *inicio, int ID, int quantidade){
      cadastro * aux = inicio;

      if(inicio == NULL){
      cout << "NENHUM PRODUTO CADASTRADO" <<endl;
      }else{
      while(aux != NULL){
      if(aux->ID == ID)
      break;

      aux = aux->prox;//aux é o que recebe o prox
      }

      if(aux != NULL){
      //o produto que querem alterar e o AUX
      aux->quantidade = quantidade;
      }else{
      cout << "PRODUTO NAO CADASTRADO" << endl;
      }
      }
      return inicio;
      }

      cadastro * listar_produtos (cadastro *inicio, int ID){
      cadastro * aux = inicio;
      if(inicio == NULL){
      cout << "NENHUM PRODUTO CADASTRADO" <<endl;
      }else{
      while(aux != NULL){
      if(aux->ID == ID)
      break;

      aux = aux->prox;//aux é o que recebe o prox
      }

      if(aux != NULL){
      if(aux->ativo == true){
      cout << "PRODUTO ATIVO - SERA INATIVADO" <<endl;
      aux->ativo = false;
      }else{
      cout << "PRODUTO INATIVO - SERA ATIVADO" <<endl;
      aux->ativo = true;
      }
      //o produto que querem alterar e o AUX

      }else{
      cout << "NENHUM PRODUTO CADASTRADO" <<endl;
      }
      }
      return inicio;
      }

      cadastro * ativo_inativo (cadastro *inicio, int ID){
      cadastro * aux = inicio;

      if(inicio == NULL){
      cout << "NENHUM PRODUTO CADASTRADO" <<endl;
      }else{
      while(aux != NULL){
      if(aux->ID == ID)
      break;

      aux = aux->prox;//aux é o que recebe o prox
      }

      if(aux != NULL){
      if(aux->ativo == true){
      cout << "PRODUTO ATIVO - SERA INATIVADO" <<endl;
      aux->ativo = false;
      }else{
      cout << "PRODUTO INATIVO - SERA ATIVADO" <<endl;
      aux->ativo = true;
      }
      //o produto que querem alterar e o AUX

      }else{
      cout << "NENHUM PRODUTO CADASTRADO" <<endl;
      }
      }
      return inicio;
      }

      void MenuPrincipal(){
      cout << "#---------------------#" << endl;
      cout << "# MENU PRINCIPAL #" << endl;
      cout << "#---------------------#" << endl;
      cout << "[1] - GERENCIAR ESTOQUE" << endl;
      cout << "[2] - COMPRAS" << endl;
      cout << "[3] - SAIR DO PROGRAMA" << endl;
      cout << "OPCAO: ";
      }


      void MenuEstoque(){
      cout << "#--------------------------------------#" << endl;
      cout << "# MENU ESTOQUE #" << endl;
      cout << "#--------------------------------------#" << endl;
      cout << "[1] CADASTRAR PRODUTO" << endl;
      cout << "[2] ALTERAR QUANTIDADE" << endl;
      cout << "[3] ATIVAR OU INATIVAR PRODUTO" << endl;
      cout << "[4] LISTAR TODOS OS PRODUTOS" << endl;
      cout << "[5] LISTAR PRODUTOS ATIVOS" << endl;
      cout << "[6] LISTAR PRODUTOS INATIVOS" << endl;
      cout << "[7] VOLTAR AO MENU PRINCIPAL" << endl;
      cout << "OPCAO: ";
      }


      void MenuCompras(){
      cout << "----------------------------------" << endl;
      cout << "[1]. PEDIDOS" << endl;
      cout << "[2]. LISTAR" << endl;
      cout << "[3]. SAIR" << endl;
      cout << "OPCAO: ";
      }



      void carregar_arquivo(){//EXEMPLO DE COMO IMPRIMIR A LISTA
      string line;
      ifstream myfile ; // ifstream = padrão ios:in para fazer o implot do arquivo
      }

      //TESTANDO
      void escreve_arquivo(){
      int x = 2 , y = 2, soma = 0;
      ofstream Saida;
      Saida.open("saida.txt");
      soma = x + y;
      Saida << "A soma é: " << soma << endl;
      Saida.close();

      }

      int main(){
      cadastro *inicio= NULL;//ponteiro, vazio de inicio
      cadastro *fim= NULL;
      cadastro *aux= NULL;//possui um endereço de memoria(um ponteiro vai armazenar um endereco de memória)
      int ID, QTDE;

      SetConsoleOutputCP(1252);
      system ("color F1");

      int op_Menu_Principal = -1;

      while(op_Menu_Principal != 3){
      MenuPrincipal();
      cin >> op_Menu_Principal; //Captura de variável do menu principal

      switch(op_Menu_Principal){

      case 1:
      int op_Menu_Estoque = -1;

      //while(op_Menu_Estoque){

      while( op_Menu_Estoque!= 7){
      MenuEstoque();
      cin >> op_Menu_Estoque;

      switch(op_Menu_Estoque){
      case 1:
      aux = (cadastro *) malloc(sizeof(cadastro));//nao é vetor pois nao tem nenhum numero multiplicando o tamanho do ponteiro, sizeof

      cout << "-------------------------------------------" << endl;
      cout <<"INFORME o ID: ";
      cin >> aux->ID;
      cout <<"INFORME O NOME DO PRODUTO: ";
      cin >> aux->nome;
      cout <<"INFORME QUANTIDADE DO PRODUTO: ";
      cin >> aux->quantidade;

      cout << "INFORME O PREÇO DO PRODUTO: ";
      cin >> aux->preco;

      while(aux->quantidade < 6 || aux->quantidade < 0)
      {
      cout << "DIGITE A QUANTIDADE CORRETA: ";
      cin >> aux->quantidade;
      }
      aux->ativo = true;
      aux->prox = NULL;
      inicio = inserir(inicio, aux);
      cout << "-------------------------------------------" << endl;
      break;

      case 2:
      cout << "-------------------------------------------" << endl;
      cout << "INFORME O ID: ";
      cin >> ID;
      cout << "INFORME A NOVA QUANTIDADE: ";
      cin >> QTDE;
      inicio = alterar(inicio, ID, QTDE);
      cout << "-------------------------------------------" << endl;
      break;

      case 3:
      cout << "-------------------------------------------" << endl;
      cout << "INFORME O ID: ";
      cin >> ID;
      inicio = ativo_inativo(inicio, ID);
      cout << "-------------------------------------------" << endl;
      break;

      case 4:
      aux = inicio;//aux vai ser impresso, então sera o primeiro
      cout << "-------------------------------------------" << endl;
      cout << "RELATÓRIO DOS PRODUTOS CADASTRADOS" << endl;
      while(aux != NULL){//se aux for diferente de null, tem algo nele o while vai contar
      cout <<"ID: " << aux->ID << endl;
      cout << "PRODUTO: " << aux->nome << endl;
      cout << "QUANTIDADE: " << aux->quantidade << endl;
      aux = aux->prox;
      }
      break;

      case 5:
      cout << "-------------------------------------------" << endl;
      cout << "RELATÓRIO DOS PRODUTOS CADASTRADOS ATIVADOS" << endl;
      aux = inicio;//aux vai ser impresso, então sera o primeiro
      while(aux != NULL && aux->ativo == true){//se aux for diferente de null, tem algo nele o while vai contar
      cout <<"ID: " << aux->ID << endl;
      cout << "PRODUTO: " << aux->nome << endl;
      cout << "QUANTIDADE: " << aux->quantidade << endl;
      aux = aux->prox;
      }
      cout << "-------------------------------------------" << endl;
      break;

      case 6:
      cout << "-------------------------------------------" << endl;
      cout << "RELATÓRIO DOS PRODUTOS CADASTRADOS DESATIVADOS" << endl;
      aux = inicio;//aux vai ser impresso, então sera o primeiro
      while(aux != NULL && aux->ativo == false){//se aux for diferente de null, tem algo nele o while vai contar
      cout <<"ID: " << aux->ID << endl;
      cout << "PRODUTO: " << aux->nome << endl;
      cout << "QUANTIDADE: " << aux->quantidade << endl;
      aux = aux->prox;
      }
      cout << "-------------------------------------------" << endl;
      break;

      }
      }
      }
      }


      int WINAPI WinMain (HINSTANCE hInstance,
      HINSTANCE hPrevInstance,
      LPSTR lpCmdLine,
      int nCdmShow);
      {
      MessageBox (NULL, "OBRIGADO POR USAR NOSSO SISTEMA!!","SVT SYSTEM", MB_OK | MB_ICONINFORMATION);
      }
      }
×

Informação importante

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