Como que eu resolvo esse erro ao tentar excluir um nó especifico de uma lista dupla encadeada?

No meu projeto, estou fazendo uma lista dupla cadeada em C, onde tem os objetivos simples, como adicionar no inicio ou fim, remover um especifico ou zerar.

Eu peguei um código raso e fui adicionando os módulos que eu precisava, usando o code blocks.

Dai na parte de adicionar a opção excluir o elemento especifico, começou a aparece os erros que já não conseguia mais resolver.

#include <stdio.h> #include <stdlib.h>  struct Banco{     int numero_conta;     char nome_cliente[30];     float saldo;     struct Banco *atras;     struct Banco *agora;     struct Banco *prox;     struct Banco *ant; }; typedef struct Banco node;  void inicia(node *LISTA); int menu(void); void opcao(node *LISTA, int op); node *criaNo(); void insereFim(node *LISTA); void insereInicio(node *LISTA); void exibe(node *LISTA); void libera(node *LISTA); void excluir (node *LISTA);   int main(void) {  node *LISTA = (node *) malloc(sizeof(node));  if(!LISTA){   printf("Sem memoria disponivel!\n");   exit(1);  }  inicia(LISTA);  int opt;   do{   opt=menu();   opcao(LISTA,opt);  }while(opt);   free(LISTA);  return 0; }  void inicia(node *LISTA) {  LISTA->prox = NULL; }  int menu(void) {  int opt;   printf("Escolha a opcao\n");  printf("0. Sair\n");  printf("1. Exibir lista\n");  printf("2. Adicionar cliente no inicio\n");  printf("3. Adicionar cliente no final\n");  printf("4. Zerar lista\n");  printf("5. Excluir cliente especifico\n");  printf("Opcao: "); scanf("%d", &opt);   return opt; }  void opcao(node *LISTA, int op) {  switch(op){   case 0:    libera(LISTA);    break;    case 1:    exibe(LISTA);    break;    case 2:    insereInicio(LISTA);    break;    case 3:    insereFim(LISTA);    break;    case 4:    inicia(LISTA);    break;     default:    printf("Comando invalido\n\n");  } }  int vazia(node *LISTA) {  if(LISTA->prox == NULL)   return 1;  else   return 0; }   void insereFim(node *LISTA) {  node *novo=(node *) malloc(sizeof(node));  if(!novo){   printf("Sem memoria disponivel!\n");   exit(1);  }  //Comeco ediчуo do professor  printf("Numero conta: "); scanf("%d", &novo->numero_conta);  printf("Nome: "); scanf("%s", novo->nome_cliente);  printf("Saldo: "); scanf("%f", &novo->saldo);  novo->prox = NULL;  //Fim da ediчуo do professor   if(vazia(LISTA))   LISTA->prox=novo;  else{   node *tmp = LISTA->prox;    while(tmp->prox != NULL)    tmp = tmp->prox;    tmp->prox = novo;  } }  void insereInicio(node *LISTA) {  node *novo=(node *) malloc(sizeof(node));  if(!novo){   printf("Sem memoria disponivel!\n");   exit(1);  }  printf("Numero conta: "); scanf("%d", &novo->numero_conta);  printf("Nome: "); scanf("%s", novo->nome_cliente);  printf("Saldo: "); scanf("%f", &novo->saldo);   node *oldHead = LISTA->prox;   LISTA->prox = novo;  novo->prox = oldHead; }  void exibe(node *LISTA) {  if(vazia(LISTA)){   printf("Lista vazia!\n\n");   return ;  }   node *tmp;  tmp = LISTA->prox; //Edicao do professor ("%d %s %f\n", tmp->numero_conta, tmp->nome_cliente, tmp->saldo)  while( tmp != NULL){   printf("\n");   printf("Numero conta: %d\n", tmp->numero_conta);   printf("Nome: %s\n", tmp->nome_cliente);   printf("Saldo: %f\n", tmp->saldo);   printf("\n");   tmp = tmp->prox;  }  printf("\n\n"); }  void libera(node *LISTA) {  if(!vazia(LISTA)){   node *proxNode,      *atual;    atual = LISTA->prox;   while(atual != NULL){    proxNode = atual->prox;    free(atual);    atual = proxNode;   }  } } 

Os primeiro erro é quando adiciono o:

case 5: excluir(LISTA);    break;  undefined reference to `excluir' 

Eu ja vi muitos tutoriais, mas nenhum deles me fez útil infelizmente.

Alguém poderia me ajudar ? Como seria para adicionar um sistema de Excluir cliente especifico nesse meu código ?

Recuperar un elemento en especifico de un arreglo Json con Ajax?

les explico : Tengo un archivo.json donde tengo guardados varios objetos con los mismos atributos ejemplo :

{“nombreElemento”:”carpeta1″,”tipoElemento”:”folder”,”fechaModificacion”:”12/12/2012 00:45pm”,”fechaCreacion”:”12/12/2012 01:45am”,”usuario”:”jperez”,”tamanio”:”5mb”} {“nombreElemento”:”carpeta2″,”tipoElemento”:”folder”,”fechaModificacion”:”12/12/2012 00:45pm”,”fechaCreacion”:”12/12/2012 01:45am”,”usuario”:”jperez”,”tamanio”:”5mb”} … la cuestion es que necesito mostrar en una ventana modal esos atributos que tiene cada archivo , hice una peticion ajax para leer ese archivo.json que es donde estan guardados las definiciones de los archivos ,pero me trae todos los objetos que estan dentro de ese archivo , y necesito que solo me traiga la informacion del archivo al que le estoy dando click! Pienso que seria como comprobar el nombre del archivo donde doy click , enviarlo en la peticion ajax y asi compararlo con la informacion que viene de regreso!

les dejo el codigo del controlador.js

function detalleRegistro(){

$  .ajax({     url:"ajax/detalle-archivo.php",     dataType:"json",     data:"../data/home.json",     success:function(respuesta){         $  ("#modal-detalle").modal("show");         console.log("La respuesta del servidor es: ");         console.log(respuesta);         for(var i=0;i<respuesta.length;i++){             if (respuesta[i].tipoElemento==='data'| respuesta[i].tipoElemento==='imagen' | respuesta[i].tipoElemento==='pdf' | respuesta[i].nombreElemento==='word' ) {                 $  ("#tabla-informacion").append(`<tr>                 <th>Nombre Elemento </th>                 <td>$  {respuesta[i].nombreElemento}</td>               </tr>               <tr>                 <th>FechaCreacion</th>                 <td>$  {respuesta[i].fechaCreacion}</td>               </tr>               <tr>                 <th>FechaModificacion</th>                 <td>$  {respuesta[i].fechaModificacion}</td>               </tr>               <tr>                 <th>Usuario</th>                 <td>$  {respuesta[i].usuario}</td>               </tr>               <tr>                 <th>Tamanio</th>                 <td>$  {respuesta[i].tamanio}</td>               </tr> `);             }           }     },     error:function(error){         console.log(error);     } });       

}

Gracias de Antemano.

Como faço para não selecionar dados repetidos que contenham em uma coluna, um valor especifico no SQL?

Boa tarde pessoal, sou iniciante com Banco de Dados, tenho uma Query que executa um filtro seguindo uma regra:

Regra:

GSM que for repetido, e tiver em ambos o STATUS = ‘ANOMALIA TEMPORÁRIA’ e seu MOTIVO_ENVIO for igual, importe apenas um registro, cuja DATA_ALTERACAO for mais recente.

Fiz o filtro da seguinte maneira:

select ex.[Nº Tel], ex.[Nº Contrato], ex.[Motivo de Envio], ex.[Status], ex.[Data Ativação], ex.[Data Importação], ex.[Data Alteração], ex.[CPF/CNPJ], ex.[IMEI], ex.[Usuário], ex.[Filiais], ex.[Descrição Anomalia] from Sheet1 ex where ex.[Status] = 'ANOMALIA TEMPORÁRIA' and exists (             select tmp.[Nº Tel]             from Sheet1 tmp             where tmp.[Nº Tel] = ex.[Nº Tel]             and tmp.[Motivo de Envio] = ex.[Motivo de Envio]             and tmp.[Status] = ex.[Status]             group by tmp.[Nº Tel], tmp.[Motivo de Envio], tmp.[Status]             having count(tmp.[Nº Tel]) > 1) 

Mas estou tendo um problema, o resultado me traz dados repetidos em que alguns registros estão com o Status que contenha os valores ('LIBERADO', 'PENDENTE', 'EM ANÁLISE', 'ANOMALIA DEFINITIVA') e isso eu não posso ter.

Mas não é somente dar um WHERE Status NOT IN ('LIBERADO', 'PENDENTE', 'EM ANÁLISE', 'ANOMALIA DEFINITIVA') até porque isso somente iria remover o registro que contenha esse Status, eu preciso que remova todos os Nº Tel que tenha esses Status.

Exemplo:

     Nº Tel               Motivo de Envio                Status _________________________________________________________________________ | 31994202248 | PRIMEIRA ATIVAÇÃO_REEMBOLSO - ADM | LIBERADO            | | 31994202248 | PRIMEIRA ATIVAÇÃO_REEMBOLSO - ADM | ANOMALIA TEMPORÁRIA | | 31994202248 | PRIMEIRA ATIVAÇÃO_REEMBOLSO - ADM | ANOMALIA TEMPORÁRIA |   

Como visto acima o Nº Tel está se repetindo, o Motivo de Envio está igual, o Status está com ‘ANOMALIA TEMPORÁRIA’ só que também está com LIBERADO ou seja, não preciso desses registros, no caso eles não podem aparecer no resultado final. Dei um exemplo com o Status = 'LIBERADO' mas o mesmo se aplica ao Status = PENDENTE, EM ANÁLISE, ANOMALIA DEFINITIVA

Ordenar no SQL priorizando um valor de um campo específico

Tenho uma grande tabela de clientes, e preciso selecionar os seguintes campos (dados exemplo)

id | id_ls | id_sistema_ls | nome | ativo ----------------------------------------  1 | 1007  |    158849     |   A  |   0  2 | 1187  |     849       |   B  |   1  3 | 19726 |    26606      |   C  |   1   4 | 5718  |    98756      |   D  |   0  5 | 6466  |     122       |   E  |   1  6 | 11825 |      18       |   F  |   1 

Eu possuo um array de id_ls que posso selecionar, então minha query original seria

SELECT id, id_ls, id_sistema_ls, nome, ativo FROM clientes WHERE id_ls IN (1007,1187,3050,5718,6466,11825,12067,12490) GROUP BY id_ls ORDER BY ativo DESC, nome ASC 

Essa query me retorna o resultado exemplificado lá em cima dessa forma

id | id_ls | id_sistema_ls | nome | ativo ----------------------------------------  2 | 1187  |     849       |   B  |   1  3 | 19726 |    26606      |   C  |   1   5 | 6466  |     122       |   E  |   1  6 | 11825 |      18       |   F  |   1  1 | 1007  |    158849     |   A  |   0  4 | 5718  |    98756      |   D  |   0 

Está funcionando corretamente. Entretanto, agora preciso priorizar uma sequencia específica de id_sistema_ls, trazendo-os primeiro e só então seguindo a ordenação. Por exemplo, quero que primeiro seja o id_sistema_ls 26606 depois o 18, e então siga-se o resultado inicial. Ficando desta forma:

id | id_ls | id_sistema_ls | nome | ativo ----------------------------------------  3 | 19726 |    26606      |   C  |   1   6 | 11825 |      18       |   F  |   1   2 | 1187  |     849       |   B  |   1  5 | 6466  |     122       |   E  |   1  1 | 1007  |    158849     |   A  |   0  4 | 5718  |    98756      |   D  |   0 

Eu tenho um array que pode conter até 9 números ordenados por prioridade. E preciso respeitá-lo. Tentei seguir esta solução que encontrei no stackoverflow. Fiz o seguinte:

SELECT id, id_ls, id_sistema_ls, nome, ativo FROM clientes WHERE id_ls IN (1007,1187,3050,5718,6466,11825,12067,12490) GROUP BY id_ls ORDER BY FIELD (id_sistema_ls, 26606, 18), ativo DESC, nome ASC 

Mas não funcionou. Segue trazendo o mesmo resultado da query sem o FIELD. Alguém sabe me dizer a razão? Ou se existe alguma maneira de eu fazer sem deixar a query super lenta?

O projeto manipula milhares de resultados e performance é importante. Também é importante manter todos os resultados numa query só devido paginação já implementada.

Como renderizar JComboBox para que muestre un regex especifico

mo pregunta es ¿como puedo pasar de esto?

introducir la descripción de la imagen aquí

a esto:

introducir la descripción de la imagen aquí

Tengo un JCombobox el cual renderizo con la interface ListCellRenderer para que me muestre ciertos datos en el mismo. Lo que sucede es que los datos origonales sin renderizar son mostrados asi:

introducir la descripción de la imagen aquí

Yo quiero mostrarlos como se ven en la segunda imagen. Para eso hago un regex de la siguiente manera:

public class RenderizadoJComboBox implements ListCellRenderer {      private DefaultListCellRenderer defaultRenderer = new DefaultListCellRenderer();      @Override         public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {             JLabel jLabel = (JLabel) defaultRenderer.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);              if (value instanceof Cardios) {                 String cadena = String.valueOf(value.toString());                 String cadenaModificada = cadena.replaceAll("[.0&&[^0-9]]", " Min - ");                 jLabel.setText(cadenaModificada);             }              return jLabel;         }     } 

Pero no logro hacer que me muestre lo que deseo ya que la salida es

2 Min – 0 Moderado

Lo cual cel 0(cero) no iria, en todos los datos me muestra lo mismo. Si cambio el regex a:

String cadenaModificada = cadena.replaceAll(".0", " Min - "); 

La salida que obtengo es para algúnos números es correcta pero para números como el 10 20 30 etc, el resultado es

Min – Min – Moderado

No soy muy bueno en los regex, agradeceria mucho su ayuda, alguna sujerencia o lo que sea en lo que le este errando. Desde ya gracias por su ayuda.

Como faço para que um script funcione num navegador específico?

Como faço para que um script funcione apenas num navegador específico, por exemplo: que funcione apenas no Chrome? E o contrário: bloquear que o script funcione num navegador específico? O que eu tenho que acrescentar ao código? Eu uso HTML e o script em questão é:

function openWindow() { window.open(“banner”,”Teste”,”width=731,height=420,top=100,left=250″); }

Android iniciar un video de youtube desde minuto especifico

Quiero poder iniciar un vídeo desde un minuto especifico, puedo ver cualquier vídeo con su ID, he probado con el url que genera Youtube para compartir un vídeo de ésta forma pero salta error, no en la aplicación si no en el servidor de youtube.

Aquí dejo mi código

public class VideoActivityYT extends YouTubeBaseActivity     implements YouTubePlayer.OnInitializedListener, YouTubePlayer.PlaylistEventListener { public static final String DEVELOPER_KEY = ConfigYT.DeveloperKey(); private String VIDEO_ID; YouTubePlayerView youTubePlayerView;  @Override protected void onCreate(Bundle savedInstanceState) {     super.onCreate(savedInstanceState);     setContentView(R.layout.fragment_video);     Bundle extras = getIntent().getExtras();     VIDEO_ID = extras.getString("video");      youTubePlayerView = findViewById(R.id.youtube_view);     youTubePlayerView.initialize(DEVELOPER_KEY, VideoActivityYT.this); }  @Override public void onInitializationFailure(YouTubePlayer.Provider provider,                                     YouTubeInitializationResult errorReason) {     if (errorReason.isUserRecoverableError()) {         errorReason.getErrorDialog(this, 1).show();     } else {         String errorMessage = String.format(                 "There was an error initializing the YouTubePlayer (%1$  s)",                 errorReason.toString());         Toast.makeText(this, errorMessage, Toast.LENGTH_SHORT).show();     } }  @Override public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer player,                                     boolean wasRestored) {     if (!wasRestored) {         player.cueVideo(VIDEO_ID);     } }  @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) {     if (requestCode == 1) { 

// Retry initialization if user performed a recovery action getYouTubePlayerProvider().initialize(DEVELOPER_KEY, this); } }

protected YouTubePlayer.Provider getYouTubePlayerProvider() {     return (youTubePlayerView); }  @Override public void onPrevious() {  }  @Override public void onNext() {  }  @Override public void onPlaylistEnded() {  } 

}

Como evitar insert de relacionamento específico no EF Core?

Antes de salvar o Pedido, seto um Cliente existente apenas com a propriedade Id preenchida, mas ao salvar o Pedido, o EF esta tentando atualizar o Cliente.

Como faço para EF inserir este Pedido e não salvar ou atualizar o cliente sem precisar de buscar este cliente antes de inserir este Pedido?

Domain Model:

public class Pedido  {     Cliente cliente; } 

Service:

var pedido = new Pedido(new Cliente() {    Id = 4 }); _pedidoRepository.Add(pedido); 

Repository:

protected readonly DbSet<TEntity> DbSet;      public Repository(DatabaseContext context)     {         Db = context;         DbSet = Db.Set<TEntity>();     }      public virtual void Add(TEntity obj)     {         DbSet.Add(obj);     } 

DbContext EF Core:

 public class DatabaseContext : DbContext {     public DbSet<Pedido> OrdemServicos { get; set; }      public DatabaseContext(DbContextOptions options) : base(options) { }     protected override void OnModelCreating(ModelBuilder modelBuilder)     {         base.OnModelCreating(modelBuilder);         modelBuilder.ApplyConfiguration(new PedidoMap());     } } 

PedidoMap:

public class PedidoMap : IEntityTypeConfiguration<Pedido> {     public void Configure(EntityTypeBuilder<Pedido> builder)     {         builder.HasOne(os => os.Cliente).WithMany();     } }