Pesquisar na Comunidade
Mostrando resultados para as tags ''excluir''.
Encontrado 9 registros
-
Olá pessoal, tenho um form que carrega a jtable certinho com os dados bancos. Sem utilizar o filtro na lista consigo realizar as operações de excluir e atualizar normalmente. Porém ao acionar o evento KeyReleased no jtextField filtrando a tabela (Filtra corretamente) acontece a seguinte situação: Editar: ao selecionar a linha desejado para editar o campo preenche uma jtextField e ao alterar a informação ao invés de alterar a linha selecionada é criado uma outra linha com a atualização. Excluir: ao selecionar a linha desejado não exclui. Isso acontece apenas com o filtro ativado! Segui minhas classes relevantes para analise: Meu Formulario package View.Forms; import Controller.ArroladoPorController; import java.awt.Color; import java.sql.SQLException; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.JButton; import javax.swing.JPanel; import javax.swing.JTable; import javax.swing.JTextField; /** * * @author Usuario */ public final class FrmArroladoPor extends javax.swing.JDialog { private final ArroladoPorController controller; private String estado; /** * Creates new form frmArroladoPor * * @param owner * @param modal * @throws java.sql.SQLException */ public FrmArroladoPor(java.awt.Frame owner, boolean modal) throws SQLException { super(owner, modal); initComponents(); controller = new ArroladoPorController(this); startScreen(); } private void initComponents() { (...) private void btnNovoActionPerformed(java.awt.event.ActionEvent evt) { estado = "salvar"; controller.setarEstadoComponentes(4); controller.limparCampos(); } private void btnSalvarActionPerformed(java.awt.event.ActionEvent evt) { try { controller.inserir(estado); controller.setarEstadoComponentes(1); } catch (SQLException ex) { Logger.getLogger(FrmArroladoPor.class.getName()).log(Level.SEVERE, null, ex); } controller.limparCampos(); } private void btnExcluirActionPerformed(java.awt.event.ActionEvent evt) { try { controller.excluir(); controller.limparCampos(); controller.setarEstadoComponentes(1); } catch (SQLException ex) { Logger.getLogger(FrmArroladoPor.class.getName()).log(Level.SEVERE, null, ex); } } private void btnEditarActionPerformed(java.awt.event.ActionEvent evt) { controller.setarEstadoComponentes(6); estado = "editar"; } private void btnSelecionarActionPerformed(java.awt.event.ActionEvent evt) { } private void txtPesquisarKeyReleased(java.awt.event.KeyEvent evt) { // estado = "editar"; controller.filtrar(); controller.setarEstadoComponentes(2); } private void tabelaKeyPressed(java.awt.event.KeyEvent evt) { estado = "editar"; controller.selecionarLinha(); controller.setarEstadoComponentes(3); } private void txtDescricaoKeyReleased(java.awt.event.KeyEvent evt) { getTxtDescricao().setBackground(Color.WHITE); } public void startScreen() throws SQLException { controller.iniciaTela(); controller.carregaTabela(); controller.setarEstadoComponentes(1); } public JButton getBtnEditar() { return btnEditar; } public void setBtnEditar(JButton btnEditar) { this.btnEditar = btnEditar; } public JButton getBtnExcluir() { return btnExcluir; } public void setBtnExcluir(JButton btnExcluir) { this.btnExcluir = btnExcluir; } public JButton getBtnNovo() { return btnNovo; } public void setBtnNovo(JButton btnNovo) { this.btnNovo = btnNovo; } public JButton getBtnSalvar() { return btnSalvar; } public void setBtnSalvar(JButton btnSalvar) { this.btnSalvar = btnSalvar; } public JButton getBtnSelecionar() { return btnSelecionar; } public void setBtnSelecionar(JButton btnSelecionar) { this.btnSelecionar = btnSelecionar; } public JTable getTabela() { return tabela; } public void setTabela(JTable tabela) { this.tabela = tabela; } public JTextField getTxtPesquisar() { return txtPesquisar; } public void setTxtPesquisar(JTextField txtPesquisar) { this.txtPesquisar = txtPesquisar; } public JPanel getPnlCadastro() { return pnlCadastro; } public void setPnlCadastro(JPanel pnlCadastro) { this.pnlCadastro = pnlCadastro; } public JPanel getPnlPesquisarPor() { return pnlPesquisarPor; } public void setPnlPesquisarPor(JPanel pnlPesquisarPor) { this.pnlPesquisarPor = pnlPesquisarPor; } public JPanel getPnlTabela() { return pnlTabela; } public void setPnlTabela(JPanel pnlTabela) { this.pnlTabela = pnlTabela; } public JTextField getTxtDescricao() { return txtDescricao; } public void setTxtDescricao(JTextField txtDescricao) { this.txtDescricao = txtDescricao; } // Variables declaration - do not modify private javax.swing.JButton btnEditar; private javax.swing.JButton btnExcluir; private javax.swing.JButton btnNovo; private javax.swing.JButton btnSalvar; private javax.swing.JButton btnSelecionar; private javax.swing.JLabel jLabel1; private javax.swing.JPanel pnlAções; private javax.swing.JPanel pnlCadastro; private javax.swing.JPanel pnlPesquisarPor; private javax.swing.JPanel pnlTabela; private javax.swing.JScrollPane scrPane; private javax.swing.JTable tabela; private javax.swing.JTextField txtDescricao; private javax.swing.JTextField txtPesquisar; MEU CONTROLLER package Controller; import Controller.Helper.ArroladoPorHelper; import Controller.Helper.HelperForHall; import View.Forms.FrmArroladoPor; import java.sql.SQLException; /** * * @author Usuario */ public class ArroladoPorController { private final FrmArroladoPor view; private final ArroladoPorHelper helper; private final HelperForHall helperForHall; public ArroladoPorController(FrmArroladoPor view) throws SQLException { this.view = view; this.helper = new ArroladoPorHelper(view); this.helperForHall = new HelperForHall(); } public void limparCampos() { helperForHall.limpaCampos(view.getPnlPesquisarPor()); helperForHall.limpaCampos(view.getPnlCadastro()); } public void iniciaTela() { helperForHall.iniciaTela(this.view, "Pesquisa e Cadastra Arrolado Por"); } public void carregaTabela() throws SQLException { helper.carregaTabelaBuscandoNoBanco(); } public void inserir(String estado) throws SQLException { if ("salvar".equals(estado)) { helper.inserir(); } if ("editar".equals(estado)) { helper.atualizar(); } } public void excluir() throws SQLException { helper.excluir(); } public void filtrar() { helper.filtrarTabela(); } public void selecionarLinha() { helper.selecionarLinha(view.getTabela()); } public void setarEstadoComponentes(int estado) { helper.setarEstadoComponentes(estado); } } HELPER DO CONTROLLER package Controller.Helper; import Model.ArroladoPor; import Dao.ArroladoPorDao; import Model.Table.MeuRenderer; import Model.Table.TableArroladoPor; import View.Forms.FrmArroladoPor; import java.awt.Color; import java.sql.SQLException; import java.util.ArrayList; import javax.swing.JOptionPane; import javax.swing.JTable; import javax.swing.ListSelectionModel; import javax.swing.RowFilter; import javax.swing.event.ListSelectionEvent; import javax.swing.table.TableModel; import javax.swing.table.TableRowSorter; /** * * @author Usuario */ public class ArroladoPorHelper { private FrmArroladoPor view; private TableArroladoPor modeloTabela; private HelperForHall helperForHall; private ArroladoPorDao dao; private ArroladoPor objClasse; public ArroladoPorHelper(FrmArroladoPor view) throws SQLException { this.dao = new ArroladoPorDao(); this.view = view; this.helperForHall = new HelperForHall(); } public ArroladoPorHelper() { } public ArroladoPor instanciaObjClasseArroladoPorComId() { String descricao = view.getTxtDescricao().getText().toUpperCase().trim(); int id = Integer.parseInt((view.getTabela().getValueAt(view.getTabela().getSelectedRow(), 0)).toString()); objClasse = new ArroladoPor(id, descricao); return objClasse; } public ArroladoPor instanciaObjClasseArroladoPorSemId() { String descricao = view.getTxtDescricao().getText().toUpperCase().trim(); objClasse = new ArroladoPor(descricao); return objClasse; } public void inserir() throws SQLException {//pronto if (view.getTxtDescricao().getText().trim().equalsIgnoreCase("")) { JOptionPane.showMessageDialog(null, "O campo descrição não pode ficar vazio!", "Validação ", JOptionPane.ERROR_MESSAGE); view.getTxtDescricao().setBackground(Color.LIGHT_GRAY); } else { if (dao.VerificacaoSalvar(instanciaObjClasseArroladoPorSemId()) != true) { dao.salvar(instanciaObjClasseArroladoPorSemId());//SALVA NO BANCO modeloTabela.addRow(objClasse); helperForHall.limpaCampos(view.getPnlPesquisarPor()); javax.swing.JOptionPane.showMessageDialog(null, "Novo registro armazenado com sucesso!", "Cadastro", JOptionPane.INFORMATION_MESSAGE); } else { javax.swing.JOptionPane.showMessageDialog(null, "Não foi possivel salvar, registro já existente!", "Verificação ao Salvar ", JOptionPane.ERROR_MESSAGE); } } } public void atualizar() throws SQLException {//pronto if (view.getTabela().getSelectedRow() != -1) { if (dao.verificaAlterar(instanciaObjClasseArroladoPorComId()) == true) { JOptionPane.showMessageDialog(null, "Não foi possivel editar, registro já existente!", "Verificação ao Editar", JOptionPane.ERROR_MESSAGE); } else { dao.alterar(instanciaObjClasseArroladoPorComId()); helperForHall.limpaCampos(view.getPnlPesquisarPor()); //ATUALIZA A TABELA modeloTabela.setValueAt(instanciaObjClasseArroladoPorComId(), view.getTabela().getSelectedRow(), 0); modeloTabela.setValueAt(instanciaObjClasseArroladoPorComId(), view.getTabela().getSelectedRow(), 1); modeloTabela.fireTableDataChanged(); JOptionPane.showMessageDialog(null, "Alteracão realizado com sucesso!", "Alteração", JOptionPane.INFORMATION_MESSAGE); } } } public void excluir() throws SQLException { String simNao[] = {"Sim", "não"}; int exclui = JOptionPane.showOptionDialog(null, "Confirma exclusão?", "Excluindo...", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, simNao, simNao[1]); if (exclui == 0) { if (view.getTabela().getSelectedRow() != -1) { if (dao.verificaExcluir(instanciaObjClasseArroladoPorComId()) != true) { //NÃO EXISTE EM OUTRA TABELA PODE EXCLUIR dao.excluir(instanciaObjClasseArroladoPorComId()); modeloTabela.removeRow(view.getTabela().getSelectedRow()); JOptionPane.showMessageDialog(null, "Exclusão realizado com sucesso!", "Exclusão", JOptionPane.INFORMATION_MESSAGE); } else { JOptionPane.showMessageDialog(null, "Registro existente em outra tabela!", "Verificação ", javax.swing.JOptionPane.ERROR_MESSAGE); } } } } public void carregaTabelaBuscandoNoBanco() throws SQLException { ArrayList lista = (ArrayList) dao.selectAll(); modeloTabela = new TableArroladoPor(lista); configuraTabela(modeloTabela); } private void configuraTabela(TableArroladoPor model) { view.getTabela().setSelectionMode(ListSelectionModel.SINGLE_SELECTION); ListSelectionModel lsm = view.getTabela().getSelectionModel(); lsm.addListSelectionListener((ListSelectionEvent e) -> { if (!e.getValueIsAdjusting()) { selecionarLinha(view.getTabela()); } }); javax.swing.table.TableCellRenderer renderer = new MeuRenderer(); view.getTabela().setDefaultRenderer(Object.class, renderer); TableRowSorter<TableModel> sorter = new TableRowSorter<>(modeloTabela); view.getTabela().setRowSorter(sorter); view.getTabela().setModel(model); view.getTabela().getTableHeader().setReorderingAllowed(false); view.getTabela().getColumnModel().getColumn(0).setMinWidth(0); view.getTabela().getColumnModel().getColumn(0).setMaxWidth(0); } public void filtrarTabela() { TableRowSorter<TableModel> sorter = new TableRowSorter<>(modeloTabela); view.getTabela().setRowSorter(sorter); String text = view.getTxtPesquisar().getText().toUpperCase(); if (text.length() == 0) { sorter.setRowFilter(null); } else { sorter.setRowFilter(RowFilter.regexFilter(text)); } } public void selecionarLinha(JTable tabela) { if (tabela.getSelectedRow() != -1) { int lin = view.getTabela().getSelectedRow(); String descricao = (view.getTabela().getValueAt(lin, 1).toString().trim()); view.getTxtDescricao().setText(descricao); setarEstadoComponentes(3); } else { view.getTxtDescricao().setText(""); } } // public void cancelarOperacao() throws SQLException { // FrmArroladoPor frmArroladoPor; // frmArroladoPor = new FrmArroladoPor(null, true); // frmArroladoPor.startScreen(); // helperForHall.fieldClean(view.getPnlCadastro()); // helperForHall.fieldClean(view.getPnlPesquisarPor()); // view.getTxtDescricao().setBackground(Color.white); // preencheTabela(); // setarEstadoComponentes(1); // } public void setarEstadoComponentes(int estado) { switch (estado) { //inicializa o formulario //ao excluir case 1: view.getTxtPesquisar().grabFocus(); view.getTxtPesquisar().setEnabled(true); view.getTabela().setEnabled(false); view.getTxtDescricao().setEnabled(false); view.getBtnNovo().setEnabled(true); view.getBtnSalvar().setEnabled(false); view.getBtnEditar().setEnabled(false); view.getBtnExcluir().setEnabled(false); view.getBtnSelecionar().setEnabled(false); break; //ao filtrar case 2: view.getTxtPesquisar().setEnabled(true); view.getTabela().setEnabled(true); view.getTxtDescricao().setEnabled(false); view.getBtnNovo().setEnabled(true); view.getBtnSalvar().setEnabled(false); view.getBtnEditar().setEnabled(false); view.getBtnExcluir().setEnabled(false); view.getBtnSelecionar().setEnabled(false); break; //ao selecionar linha tabela case 3: view.getTxtPesquisar().setEnabled(true); view.getTabela().setEnabled(true); view.getTxtDescricao().setEnabled(false); view.getBtnNovo().setEnabled(false); view.getBtnSalvar().setEnabled(false); view.getBtnEditar().setEnabled(true); view.getBtnExcluir().setEnabled(true); view.getBtnSelecionar().setEnabled(false); break; //ao clicar botão novo case 4: view.getTxtDescricao().grabFocus(); view.getTxtPesquisar().setEnabled(true); view.getTabela().setEnabled(false); view.getTxtDescricao().setEnabled(true); view.getBtnNovo().setEnabled(false); view.getBtnSalvar().setEnabled(true); view.getBtnEditar().setEnabled(false); view.getBtnExcluir().setEnabled(false); view.getBtnSelecionar().setEnabled(false); break; //ao apertar Salvar case 5: view.getTxtDescricao().grabFocus(); view.getTxtPesquisar().setEnabled(true); view.getTabela().setEnabled(false); view.getTxtDescricao().setEnabled(true); view.getBtnNovo().setEnabled(false); view.getBtnSalvar().setEnabled(true); view.getBtnEditar().setEnabled(false); view.getBtnExcluir().setEnabled(false); view.getBtnSelecionar().setEnabled(false); break; //ao apertar Editar case 6: view.getTxtDescricao().grabFocus(); view.getTxtPesquisar().setEnabled(true); view.getTabela().setEnabled(true); view.getTxtDescricao().setEnabled(true); view.getBtnNovo().setEnabled(false); view.getBtnSalvar().setEnabled(true); view.getBtnEditar().setEnabled(false); view.getBtnExcluir().setEnabled(false); view.getBtnSelecionar().setEnabled(false); break; default: break; } } } MODELA DA TABELA DA CLASSE package Model.Table; import Model.ArroladoPor; import java.util.ArrayList; import java.util.Collections; /** * * @author Usuario */ public class TableArroladoPor extends TableModelPadrao { public TableArroladoPor(ArrayList linhas) { super(linhas); } @Override public Object getValueAt(int rowIndex, int columnIndex) { ArroladoPor a = (ArroladoPor) linhas.get(rowIndex); switch (columnIndex) { case 0: return a.getIdArrolado(); case 1: return a.getDescricao(); default: // Se o índice da coluna não for válido, lança um // IndexOutOfBoundsException (Exceção de índice fora dos limites). // Não foi necessário verificar se o índice da linha é inválido, // pois o próprio ArrayList lança a exceção caso seja inválido. throw new IndexOutOfBoundsException("Numero de colunas no TableArroladoPor" + " não é compativel com dados do banco"); } } @Override protected String[] criarColunas() { return new String[]{"Id", "Descricão"}; } @Override protected boolean[] colEditavel() { return new boolean[]{false, false}; } @Override public void addRow(Object o) { this.linhas.add(o); Collections.sort (this.linhas); this.fireTableDataChanged(); } @Override public void removeRow(int linha) { this.linhas.remove(linha); this.fireTableRowsDeleted(linha, linha); this.fireTableDataChanged(); } @Override public void setValueAt(Object obj, int linha, int coluna) { ArroladoPor a = (ArroladoPor) linhas.get(linha); switch (coluna) { // case 0: // Primeira coluna é o codigo. // a.setIdArrolado(Integer.parseInt((String) obj)); // break; case 1: // Segunda coluna é o descricao. a.setDescricao(obj.toString()); break; } this.fireTableCellUpdated(linha, coluna); } @Override public int getRowCount() { return linhas.size(); } @Override public int getColumnCount() { return colunas.length; } }
-
Olá! Sou novo por aqui e preciso da ajuda de vocês. Estou criando uma planilha para uma igreja lançar seus dízimos e suas despesas. Criei um formulário de lançamentos e no código, há uma opção de pesquisar pelo número de lançamento e apagar aquele lançamento da pesquisa. O problema é que o código está apagando também o número de lançamento, que está na primeira coluna (A:A). Como fazer para apagar somente a partir do número de lançamento? Abaixo, o código que uso e um print do formulário com a planilha. Private Sub bt_excluir_Click() 'Declarar a variável Resp para receber uma resposta Dim Resp As Integer 'Fazer a busca do registro digitado pelo usuário With Worksheets("Saídas").Range("A:A") Set c = .Find(txt_lançamento.Value, LookIn:=xlValues, LookAt:=xlWhole) If Not c Is Nothing Then Resp = MsgBox("Tem certeza que deseja excluir o registro?", vbYesNo, "Confirmação") If Resp = vbYes Then c.Select ActiveCell.Delete Selection.EntireRow.Delete 'Limpar as caixas de texto txt_data.Value = Empty txt_empresa.Value = Empty txt_cnpj.Value = Empty txt_nf.Value = Empty txt_documento.Value = Empty txt_discriminação.Value = Empty txt_banco.Value = Empty txt_valor.Value = Empty txt_juros.Value = Empty txt_data.SetFocus Else MsgBox "O registro não será excluído!" End If Else MsgBox "Registro não excluído" End If End With Exit Sub End Sub Aguardo pela ajuda de vocês.
-
Tenho um sistema de gerenciamento de conteúdo que utilizo no meu site de loja de carros, tem 3 tabelas que são dependentes, Loja, Carros e Carrosfotos. Quando cadastro uma Loja, adiciono um Carro e várias fotos desse carro, tudo em suas tabelas correspondentes, porém notei que o sistema não estava excluindo os registros em cascata, estavam ficando muito arquivos órfãos, ou seja, quando excluísse a loja, era pra excluir todos os carros daquela loja e todas as fotos dos carros, sendo assim fiquei com muito espaço perdido no servidor, então preciso excluir essas fotos. Pesquisei em alguns fóruns e não achei nada completo, somente fragmentos do que queria, então fui juntando as coisas e gostaria da opinião de vocês onde posso melhorar ou se estou fazendo de forma errada, segue o código: try{ //Caminho para pasta $path = "upload/imagens/carros/"; $diretorio = dir($path); //Faço uma leitura em toda pasta e adiciono cada arquivo no array $arquivos = array(); while ($file = $diretorio->read()) { if ($file != "." && $file != "..") { array_push($arquivos, $file); } } //Conexão com BD $conn = new PDO('mysql:host=localhost;dbname=minhaloja', 'user', 'senha'); //Seleciono todos os registros $stmt = $conn->prepare('SELECT `imagem` FROM `carrosfotos`'); $stmt->execute(array()); $result = $stmt->fetchAll(PDO::FETCH_ASSOC); //Percorro o array e comparo com o BD se o arquivo encontrado está cadastrado foreach ($arquivos as $foto){ if (in_array($foto, array_column($result, 'imagem'))) { echo '<pre>'; echo 'A imagem'.$foto.' está cadastrada.'; echo '</pre>'; } else { unlink($path . $foto); } } } catch (PDOException $e) { echo 'ERRO: ' . $e->getMessage(); $diretorio->close(); }
-
vba EXCLUIR DADOS DE LINHA POR PESQUISA SEM PRECISAR APAGAR POR INTEIRA
uma questão postou Luan Valle VBA
Olá! Sou novo por aqui e preciso da ajuda de vocês. Estou criando uma planilha para uma igreja lançar seus dízimos e suas despesas. Criei um formulário de lançamentos e no código, há uma opção de pesquisar pelo número de lançamento e apagar aquele lançamento da pesquisa. O problema é que o código está apagando também o número de lançamento, que está na primeira coluna (A:A). Como fazer para apagar somente a partir do número de lançamento? Abaixo, o código que uso e um print do formulário com a planilha. Private Sub bt_excluir_Click() 'Declarar a variável Resp para receber uma resposta Dim Resp As Integer 'Fazer a busca do registro digitado pelo usuário With Worksheets("Saídas").Range("A:A") Set c = .Find(txt_lançamento.Value, LookIn:=xlValues, LookAt:=xlWhole) If Not c Is Nothing Then Resp = MsgBox("Tem certeza que deseja excluir o registro?", vbYesNo, "Confirmação") If Resp = vbYes Then c.Select ActiveCell.Delete Selection.EntireRow.Delete 'Limpar as caixas de texto txt_data.Value = Empty txt_empresa.Value = Empty txt_cnpj.Value = Empty txt_nf.Value = Empty txt_documento.Value = Empty txt_discriminação.Value = Empty txt_banco.Value = Empty txt_valor.Value = Empty txt_juros.Value = Empty txt_data.SetFocus Else MsgBox "O registro não será excluído!" End If Else MsgBox "Registro não excluído" End If End With Exit Sub End Sub Aguardo pela ajuda de vocês. -
Gostaria de uma ajuda , há algum código onde após determinada data a planilha se bloqueia e pede uma senha, caso essa senha seja errada 3 vezes , a planilha se exclui sozinha.
-
c Programa cadastrar disciplinas de um aluno
uma questão postou MatAmianto Tutoriais & Dicas - C, C++
Estou em duvida nesse program pq exclui mas ainda aparece se pesquiso tipo o numero 1, 2 , 3 #include <stdio.h> #include <string.h> #include <stdlib.h> struct controleNota{ float nota1, nota2; float media; int status; char disc[50]; char prof[50]; char sigla[25]; }aluno; FILE *tnt; remove(); int verificaExclusao(); void excluir(); void alterar(); void mostrarTudo(); void cadastro(); int local (); void pesquisa(); void excluir(); int main(){ int op; do { printf("\t\t\t----------MENU---------\n\t\t\t1)Cadastrar Disciplinas\n"); printf("\t\t\t2)Pesquisar Discipinas\n\t\t\t3)Excluir Disciplinas\n\t\t\t4)Mostrar Todos\n"); printf("\t\t\t5)Alterar Programa\n\t\t\t6)Encerrar Programa\n"); printf("\nDigite sua opcao: "); scanf("%d",&op); switch(op){ case 1: system("cls"); cadastro(); break; case 2: system("cls"); pesquisa(); break; case 3: system("cls"); excluir(); break; case 4: system("cls"); mostrarTudo(); break; case 5: system("cls"); alterar(); break; case 6: system("cls"); printf("Programa Encerrado Com Sucesso\nGOKU WINS!!!!!"); break; default: printf("NUMERO INCORRETO!\n"); printf("DIGITE QUALQUER TECLA PRA CONTINUAR\n"); getch(); fflush(stdin); system("cls"); } }while(op != 4); fclose(tnt); } void cadastro(){ tnt = fopen("controleNotas.txt", "ab+"); fseek(tnt,0L,SEEK_END); do{ printf("Digite o nome da Disciplina ou s para sair \n"); fflush(stdin); gets(aluno.disc); if((strcmp(aluno.disc,"s")!=0)&&(strcmp(aluno.disc,"S")!=0)){ printf("Digite o nome do Professor\n"); gets(aluno.prof); fflush(stdin); printf("Digite a sigla da disciplina\n"); gets(aluno.sigla); fflush(stdin); printf("Digite a nota do primeiro bimestre do cidadao\n"); scanf("%f",&aluno.nota1); printf("Digite a nota do segundo bimestre do cidadao\n"); scanf("%f",&aluno.nota2); aluno.status=1; if( fwrite(&aluno,sizeof(struct controleNota),1,tnt)){ printf("\n\tDISCIPLINA ATUALIZADO DADOS-----------\n"); } else{ printf("\n\tOCORREU ERRO NO CADASTRO\n"); } } }while((strcmp(aluno.disc,"s")!=0)&&(strcmp(aluno.disc,"S")!=0)); fclose(tnt); } int local (){ char cadedisc[70]; int cont = 0; if((tnt = fopen("controleNotas.txt", "rb"))==NULL){ printf("\n\tNAO POSSUI NOTAS E DISCIPLINAS CADASTRADAS\n"); printf("\n\tDigite qualquer tecla pra voltar\n"); getch(); fflush(stdin); system("cls"); main(); } if(verificaExclusao()==1){ printf("\n\tTodo mundo excluido\n"); printf("\n\tDigite qualquer tecla pra voltar\n"); getch(); fflush(stdin); system("cls"); main(); } fflush(stdin); printf("\n\tNome da Disciplina:"); gets(cadedisc); while(!feof(tnt)){ fread(&aluno, sizeof(struct controleNota), 1, tnt); if(strcmp( aluno.disc,cadedisc)==0){ if(aluno.status == 0){ cont = -1; break; } break; } cont++; } if(strcmp(cadedisc,aluno.disc)==1){ cont = -1; } fclose(tnt); return cont; } void pesquisa(){ int posi; posi = local(); if(posi<0){ printf("\tDISCIPLINA NAO ENCONTRADA\n"); } else{ tnt = fopen("controleNotas.txt", "rb"); fseek(tnt,posi*sizeof(struct controleNota),SEEK_SET); fread(&aluno,sizeof(struct controleNota),1,tnt); printf("\tNome do Professor %s\n",aluno.prof); printf("\tNome da Disciplina %s\n",aluno.disc); printf("\tSigla da Discilina %s\n",aluno.sigla); printf("\t---1 NOTA---\t---2 NOTA---\n\t---%.2f---\t---%.2f---\n",aluno.nota1,aluno.nota2); aluno.media=(aluno.nota1+aluno.nota2)/2; if(aluno.media>=7){ printf("\tA MEDIA EH: %.2f\n",aluno.media); printf("\t------MATERIA COM OTIMOS RESULTADOS------\n"); } else { printf("\tA MEDIA EH: %.2f\n",aluno.media); printf("\t------ALUNO COM DEFICIENCIA------\n"); } } fclose(tnt); } void excluir(){ int posi; posi = local(); if(posi <0){ printf("\tDISCIPLINA NAO ENCONTRADA\n"); } else{ tnt = fopen("controleNotas.txt","rb+"); fseek(tnt,posi*sizeof(struct controleNota), SEEK_SET); fread(&aluno,sizeof(struct controleNota),1,tnt); printf("\nEssa Disciplina sera excluida...\n"); printf("\tNome do Professor %s\n",aluno.prof); printf("\tNome da Disciplina %s\n",aluno.disc); printf("\tSigla da Discilina %s\n",aluno.sigla); printf("\t---1 NOTA---\t---2 NOTA---\n\t---%.2f---\t---%.2f---\n",aluno.nota1,aluno.nota2); fflush(stdin); getch(); aluno.status = 0; fseek(tnt,posi*sizeof(struct controleNota), SEEK_SET); if(fwrite(&aluno,sizeof(struct controleNota),1,tnt)){ printf("\nDISCIPLINA EXCLUIDA\n"); fclose(tnt); getch(); fflush(stdin); system("cls"); main(); } else{ printf("\nFALHOU"); fclose(tnt); getch(); fflush(stdin); system("cls"); main(); } } } void mostrarTudo(){ if((tnt = fopen("controleNotas.txt", "rb"))==NULL){ printf("\n\tNAO POSSUI NOTAS E DISCIPLINAS CADASTRADAS\n"); printf("\n\tDigite qualquer tecla pra voltar\n"); getch(); fflush(stdin); system("cls"); main(); } if(verificaExclusao()==1){ printf("\n\tTodo mundo excluido\n"); printf("\n\tDigite qualquer tecla pra voltar\n"); getch(); fflush(stdin); system("cls"); main(); } fseek(tnt, 0L, SEEK_SET); fread(&aluno, sizeof(struct controleNota),1, tnt); do{ if(aluno.status!=0){ printf("\n\tNome do Professor %s\n",aluno.prof); printf("\tNome da Disciplina %s\n",aluno.disc); printf("\tSigla da Discilina %s\n",aluno.sigla); printf("\t---1 NOTA---\t---2 NOTA---\n\t---%.2f---\t---%.2f---\n",aluno.nota1,aluno.nota2); aluno.media=(aluno.nota1+aluno.nota2)/2; if(aluno.media>=7){ printf("\tA MEDIA EH: %.2f\n",aluno.media); printf("\t------MATERIA COM OTIMOS RESULTADOS------\n"); } else { printf("\tA MEDIA EH: %.2f\n",aluno.media); printf("\t------ALUNO COM DEFICIENCIA------\n"); } } fread(&aluno, sizeof(struct controleNota),1, tnt); }while(!feof(tnt)); getch(); main(); } void alterar(){ int x,z; x=local(); if(x<0){ printf("\tDISCIPLINA NAO ENCONTRADA\n"); } else{ tnt = fopen("controleNotas.txt", "rb+"); fseek(tnt,x*sizeof(struct controleNota),SEEK_CUR); fread(&aluno,sizeof(struct controleNota),1,tnt); printf("\nDeseja alterar a seguinte disciplina...\n"); printf("\tNome do Professor %s\n",aluno.prof); printf("\tNome da Disciplina %s\n",aluno.disc); printf("\tSigla da Discilina %s\n",aluno.sigla); printf("\t---1 NOTA---\t---2 NOTA---\n\t---%.2f---\t---%.2f---\n",aluno.nota1,aluno.nota2); fflush(stdin); printf("\nDigite as mudancas:\n\n"); printf("Digite o nome do Professor\n"); gets(aluno.prof); printf("Digite a disciplina\n"); gets(aluno.disc); fflush(stdin); printf("Digite a sigla da disciplina\n"); gets(aluno.sigla); fflush(stdin); printf("Digite a nota do primeiro bimestre do cidadao\n"); scanf("%f",&aluno.nota1); printf("Digite a nota do segundo bimestre do cidadao\n"); scanf("%f",&aluno.nota2); aluno.status=1; fseek(tnt,x*sizeof(struct controleNota),SEEK_SET); if(fwrite(&aluno,sizeof(struct controleNota),1,tnt)){ printf("\n\tALTERADO COM SUCESSO-----------\n"); fclose(tnt); getch(); fflush(stdin); system("cls"); main(); } else{ printf("\n\tERRO NA ATUALIZAÇÃO\n"); fclose(tnt); getch(); fflush(stdin); system("cls"); main(); } } fclose(tnt); } int verificaExclusao(){ tnt=fopen("controleNotas.txt","rb"); rewind(tnt); fread(&aluno,sizeof(struct controleNota),1,tnt); do{ if(aluno.status != 0){ return 0; } fread(&aluno,sizeof(struct controleNota),1,tnt); }while(!feof(tnt)); fclose(tnt); return 1; } -
Boa tarde pessoal, Estou com o seguinte problema, Tenho um arquivo txt que percorre várias linhas, sendo que em minha tratativa utilizo cada linha como um item de um list, e em cada linha tenho campo, sendo que cada campo é um subitem deste list, exemplo: linha0 linha0 campo1 linha0 campo2 Estou fazendo um for para que percorra todas as linhas e tenho um uma lista do que deverá ser excluído, exemplo exclusoes = [2300,1230,2440] fiz um for que percorra todo o txt e suas linhas, de modo que, cada vez que o campo 1 tiver o mesmo conteúdo que qualquer item da list (do txt) irá excluir a linha: for i in range(len(txt)): if txt[1] in exclusoes: del txt O problema é que, ao excluir, a lista fica desordenada, pois exclui um item e os índices já não batem mais, gerando o erro ...blablabla... "list index out of range" Como posso fazer essa exclusão? Devo reindexar a lista a cada exclusão? Visto que existe um "for" percorrendo a lista e verificando os conteúdos? Desde já agradeço qualquer ajuda.
-
Hola galera, preciso de uma forcinha Meu professor pediu para escrever em uma pilha os valores multiplos de 5 entre 0 - 75. Mostrar na tela a pilha e eliminar um valor escolhido pelo usuario e ir mostrando a pilha conforme vai excluindo os valores. Exemplo: 1 2 Quero excluir o 2 2 3 3 3 4 4 4 <-- Assim ficaria a pilha no final 5 5 5 #include <iostream> using namespace std; const int MAX=75; int pilha[MAX]; int tope = 0; int pilha_tamanho(){ return tope+1; } bool pilha_vazia(){ return !tope; } bool pilha_cheia() { return tope == MAX; } bool push (int valor){ if (pilha_cheia()) return false; pilha[tope] = valor; tope++; return true; } bool pop(int &valor){ if (pilha_vazia()){ return false; }else{ int valor = pilha[tope-1]; tope--; return true; } } int main() { int valor, i, num; cout<<"Empilhar"<<endl; for (valor=0; valor<=75; valor++){ if ((valor%5)==0){ push(valor); } } for(i=0; i<tope; i++){ cout<<pilha[i]<<endl; } cout<<"\nCual numero desea quitar de la pila: "; cin>>num; while(num==pilha[i]){ cout<<pop(valor)<<endl; } /* Para desempilhar tudo cout<<"Desempilhar"<<endl; while(!pilha_vazia()) { cout<<pop()<<endl; }*/ cout<<"\nTamanho da pilha: "<<pilha_tamanho(); return 0; }