-
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);
}
}
-