Ir para o conteúdo
  1. Permissões C

    VitorCoelho
    Por VitorCoelho,

    Bom Dia queria saber se existe um método  para verificar se uma pasta tem permissões de escrita em C# e devolver uma mensagem de erro se não tiver permissões de escrita.O meu código é este mas não funciona: 

    public void Permissoes()
            {
                var caminho = SaveFileDialog1.FileName;
                    string folder = caminho;
    
                    var permission = new FileIOPermission(FileIOPermissionAccess.Write, folder);
                    var permissionSet = new PermissionSet(PermissionState.None);
                    permissionSet.AddPermission(permission);
                    if (permissionSet.IsSubsetOf(AppDomain.CurrentDomain.PermissionSet))
                    {
                    MessageBox.Show("Tem permissoes", "ACEITE");
                    }
                    else
                    {
                    MessageBox.Show("Não tem permissoes", "ERRO");
                    Environment.Exit(0);
                    }
            }

     

    • 0 respostas
  2. Re: Streaming de Musica

    ribeiro55
    Por ribeiro55,

    Olá nunomonteiro123,

    O que é que não estás a conseguir ao certo na adição de dados à base de dados?
    Para o que a PAP representa, não precisas de implementar o conceito de "stream", propriamente dito.
    Algo tão simples como a tua aplicação fazer download do ficheiro todo antes de a tocar já serve o propósito e torna-se muito mais simples.

    Vou assumir que por Windows Media Player te estás a referir ao controlo COM do Windows Media Player que podes adicionar ao teu form.
    Mesmo adicionando ao forma através da Toolbox é possível retirar a interface com uiMode = "invisible", e ficas sem rigorosamente nada na parte visual.

    Também podes fazê-lo sem adicionar nada por a toolbox:

    WMPLib.WindowsMediaPlayer wmp = new WMPLib.WindowsMediaPlayer();
    wmp.URL = @"C:\Windows\media\Ring05.wav";
    wmp.controls.play();

    É possível usar todos os controlos do player programáticamente, e até te permite colocar caminhos no protocolo HTTP no URL, o que acrescenta mais possibilidades à tua solução. Terás de pensar antes em como vais "alojar" as músicas, para depois decidir como as servir.

    Explora essa parte e partimos daí para o resto.

    • 1 resposta
  3. Re: Streaming de Musica

    nunomonteiro123
    Por nunomonteiro123,

    Boas, este ano termino o 12º e como sempre temos de realizar a infernal PAP.... Desde o inicio que escolhi um programa para ouvir musica estilo Spotify mas estou a ter grandes dificuldades na parte de streaming de musica.

    A minha grande e primeira duvida é a seguinte: Como e que adiciono Musicas numa Base de dados? Tenho de adicionar alguns critérios a musica como por exemplo autor, album, data de criação etc etc mas não estou a conseguir chegar perto de algo com sucesso.

    A segunda grande duvida é como e que posso criar um Player de Musica? Sei que posso usar o Windows Media Player como ferramenta mas digamos que aquele design e literalmente horrivel e nao se adequa ao estilo moderno do meu programa. 

    Gostaria de obter algum tipo de explicação sobre o assunto, nao preciso que façam a papinha toda obviamente.

    Sugestões são aceites. Relembro que não posso mudar de protejo ;)

    • 1 resposta
  4. Re: struct: listar e adicionar

    thefirex
    Por thefirex,

    Isso acontece porque creio que tenhas mal configurado os teus structs. Dentro do struct CIDADE tu queres guardar os valores da humidade e da temperatura. Agora, tu criaste um struct à parte chamado METEOROLOGIA e colocaste lá um unsigned short int humidade e um short int temperatura, e dentro do struct CIDADE o que fizeste foi colocar METEOROLOGIA humidade, temperatura, e depois onde dá o erro colocaste "if(ap_cidade.humidade != 0.....)" e isto dá erro pois simplesmente estás a ir dentro do struct CIDADE ao campo humidade que está como tipo de dados METEOROLOGIA e não como inteiro.

    Então, ou simplesmente eliminas o struct METEOROLOGIA e colocas a humidade e a temperatura dentro do struct CIDADE com tipo de dados inteiro(ou short, unsigned, qualquer tipo de dados numéricos que te dê mais jeito), ou, caso queiras um array do tipo METEOROLOGIA dentro do struct CIDADE colocas dentro deste struct METEOROLOGIA dados[20](por exemplo), pois como está não está correto e é por isso que dá o erro a comparar.

    • 1 resposta
  5. SPA em aplicações empresariais

    AJBM
    Por AJBM,

    Boas,

    Eu não tenho muita experiência em aplicações SPA, no entanto, tenho "ouvido" falar muito delas, devido em grande parte, a frameworks/bibliotecas como angular, knockout, react, entre outras.
    Faz-me alguma confusão, que todos os ficheiros (javascript,css) sejam carregados no load inicial. Em aplicações pequenas não vejo problemas, mas para aplicações de maior dimensões penso que poderá ser overkill, carregar todos os recursos de uma só vez. (Tendo em conta que o utilizador pode apenas visitar uma ou duas páginas).
    SPA é indicado para aplicações de grandes dimensões?
    É mais fácil efectuar a manutenção de uma aplicação que use SPA ou de uma Multi-Page Application? 
     

    • 0 respostas
  6. Re: struct: listar e adicionar

    D4RKbulle7
    Por D4RKbulle7,

    neste programa de uma base de dados meteorológicos permite adicionar  na mesma cidade e no mesmo dia + do que um dado de temperatura e humidade

    tbm permite listar todas as cidades mas queria que apenas lista-se as cidades com dados meteorológicos mas aparece um erro :

    error: invalid operands to binary != (have 'METEOROLOGIA {aka struct meteorologia}' and 'int')

    #define TAM 40
    /*
     * 
     */
    //Registro da data
    typedef struct data{
        unsigned short int dia,mes,ano;   
        
    }DATA; 
    
    typedef struct meteorologia{
        unsigned short int humidade;   
        short int temperatura;
        
    }METEOROLOGIA; 
    
    typedef struct cidade{ 
        unsigned short int id;
        char cidade[TAM];
        char concelho[TAM];
        char distrito[TAM];
        DATA dia,mes,ano;  
        METEOROLOGIA humidade, temperatura;
        
    }CIDADE;
    //Adicionar Informação Meteorologica
    int adicionar_meteo(CIDADE *ap_cidade)
    {
        printf("Escolha a cidade para adicionar informaçao: \n");
        
        Distrito(ap_cidade);
        printf("\nDigite a temperatura: \n");
        scanf("%i",ap_cidade[ap_cidade ->id].temperatura);
        printf("\nDigite a Humidade: \n");
        scanf("%i",ap_cidade[ap_cidade ->id].humidade);
        printf("\nDigite a data: (Dia/Mes/Ano) \n");
        scanf("%i,%i,%i",ap_cidade[ap_cidade ->id].dia,ap_cidade[ap_cidade ->id].mes,ap_cidade[ap_cidade ->id].ano);
    }
    //Editar Informação Meteorologica
    int editar_meteo(CIDADE *ap_cidade)
    {
        printf("Escolha a cidade para editar informaçao:\n");
        Distrito(ap_cidade);
          
    }
    //Remover Informação Meteorologica
    int remover_meteo(CIDADE *ap_cidade)
    {
        printf("Escolha a cidade para remover informaçao:\n");
        Distrito(ap_cidade);
    }
    //Listar cidades com dados meteorologicos
    void listar(CIDADE *ap_cidade){
        int i=0;
        for(;i<=151;i++)
               if( ap_cidade[i].humidade != 0 && ap_cidade[i].temperatura != 0){
            printf("%hu - %s,%s,%s temperatura %i ºC ,Humidade %i %%,Data %i/%i/%i)\n",
                    ap_cidade[i].id, ap_cidade[i].cidade, ap_cidade[i].concelho,
                    ap_cidade[i].concelho ,ap_cidade[i].temperatura,ap_cidade[i].humidade,
                    ap_cidade[i].dia,ap_cidade[i].mes,ap_cidade[i].ano);
               }
    }  

     

    • 1 resposta
  7. Re: Problema com funções e apontadores

    D4RKbulle7
    Por D4RKbulle7,

    Obrigado

    • 5 respostas
  8. Re: Yiii2 - Problema com login e sessão

    tevez15
    Por tevez15,

    Obrigado pela resposta,

    Basicamente o que fiz foi uma instalação de novo e comentar algumas linhas nas funções do user, e nao colocar o model de acesso a bd no mesmo ficheiro, mantendo a chamada separada de tudo o resto, usando apenas o "use....." para chamar o mesmo e usar a partir dai e funcionou.

    • 2 respostas
  9. Re: Problema com funções e apontadores

    thefirex
    Por thefirex,

    A função void VianaDoCastelo tem como argumento(o que está entre parenteses) CIDADE *ap_cidade , ou seja, declaras que a função tem um argumento apontador do tipo de dados CIDADE e que dentro daquela função se chama ap_cidade (que também é o nome usado em main para criar o apontador). Na função distrito, no case 16, chama a função VianaDoCastelo sem passar o argumento que antes foi definido para essa função. A solução passa por passar o apontador que está na função Distrito (e que veio da função main) para a função VianaDoCastelo quando a chama, ficando no case 16

    case (16):
                VianaDoCastelo(ap_cidade);
                break;

     

    • 5 respostas
  10. Re: Problema com funções e apontadores

    D4RKbulle7
    Por D4RKbulle7,
    18 minutos atrás, M6 disse:

     está à espera de receber um argumento que é um apontador para uma CIDADE.

    Não percebi esta parte,dentro da função Distrito no case 16 devo de por CIDADE *ap_cidade;? 

    • 5 respostas
  11. Re: Problema com funções e apontadores

    thefirex
    Por thefirex,

    Está a chamar a função VianaDoCastelo na função Distrito sem passar o apontador ap_cidade, daí ele indicar o erro de "too few arguments to function 'VianaDoCastelo'"

    • 5 respostas
  12. Re: Problema com funções e apontadores

    M6
    Por M6,

    No Case 16 tens uma chamada à função "VianaDoCastelo" em que não estás a passar nenhum argumento, mas a função, tal como a definiste, está à espera de receber um argumento que é um apontador para uma CIDADE.

    • 5 respostas
  13. Re: Problema com funções e apontadores

    D4RKbulle7
    Por D4RKbulle7,

    Estou a fazer um banco de dados meteorologico e estou a ter um problema:

    na void VianaDoCastelo aparece um aviso com :"declared here"

    e na void Distrito na opcao de viana do castelo hã um erro:"too few arguments to function 'VianaDoCastelo'"

    obrigado pela ajuda,

    #define TAM 30
    typedef struct data{
        unsigned short int dia,mes,ano;   
        
    }DATA; 
    
    typedef struct meteorologia{
        unsigned short int humidade;   
        short int temperatura;
        
    }METEOROLOGIA; 
    
    typedef struct cidade{ 
        unsigned short int id;
        char cidade[TAM];
        char concelho[TAM];
        char distrito[TAM];
        DATA dia,mes,ano;  
        METEOROLOGIA humidade, temperatura;
        
    }CIDADE;
    
    //Distrito de Viana do Castelo
    void VianaDoCastelo(CIDADE *ap_cidade){
        unsigned short int opcao;
        printf(" Código, Cidade, Concelho, Distrito ou Região Autónoma \n"
               "141, Viana do Castelo, Viana do Castelo, Viana do Castelo\n");
        scanf("%i",&opcao);
        cleanInputBuffer();
        switch (opcao){
            case (141): 
                ap_cidade[opcao].id = 141;
                strcpy(ap_cidade[opcao].cidade, "Viana do Castelo");
                strcpy(ap_cidade[opcao].concelho, "Viana do Castelo"); 
                strcpy(ap_cidade[opcao].distrito, "Viana do Castelo");
                break;
        }
    }
    //Menu para escolher o distrito
    void Distrito (CIDADE *ap_cidade){
        unsigned short int opcao;
        
        printf("Escolha o distrito ou Região Autónoma : \n"
                "1 - Aveiro \n"
                "2 - Beja \n"
                "3 - Braga\n"
                "4 - Bragança\n"
                "5 - Castelo Branco\n"
                "6 - Coimbra\n"
                "7 - Évora\n"
                "8 - Faro\n"
                "9 - Guarda\n"
                "10 - Leiria\n"
                "11 - Lisbon\n"
                "12 - Portalegre\n"
                "13 - Porto\n"
                "14 - Santarém\n"
                "15 - Setúbal\n"
                "16 - Viana do Castelo\n"
                "17 - Vila Real\n"
                "18 - Viseu\n"
                "19 - Açores\n"
                "20 - Madeira\n");
        scanf("%i",&opcao);
        cleanInputBuffer();
        switch (opcao){
            case (1):
                Aveiro();
                break;
            case (2):
                Beja();
                break;
            case (3):
                Braga();
                break;  
            case (4):
                Braganca();
                break;
            case (5):
                CasteloBranco();
                break;    
            case (6):
                Coimbra();
                break;    
            case (7):
                Evora();
                break;    
            case (8):
                Faro();
                break;    
            case (9):
                Guarda();
                break;  
            case (10):
                Leiria();
                break;
            case (11):
                Lisbon();
                break;
            case (12):
                Portalegre();
                break;   
            case (13):
                Porto();
                break;
            case (14):
                Santarem();
                break;    
            case (15):
                Setubal();
                break;    
            case (16):
                VianaDoCastelo();
                break;
            case (17):
                VilaReal();
                break;
            case (18):
                Viseu();
                break;    
            case (19):
                Azores();
                break;
            case (20):
                Madeira();
                break;    
        }
    }   
    int main(int argc, char** argv) {
    
        CIDADE*ap_cidade;
        unsigned short int opcao;
        
        printf("*************************MENU************************\n"
               "1 - Adicionar,Editar,Remover Informação Meteorologica\n"
               "2 - Guardar/Carregar dados de um ficheiro\n"
               "3 - Valores Medios,Maximos e Minimos\n"
               "4 - Exportar  resultados para um ficheiro cvs\n"
               "5 - Listar Cidades\n"
               "6 - Sair\n"
               "Escolha uma opção\n");
        scanf("%i",&opcao);
        switch (opcao){
            case (1) :
                Menu1();
                break;
            case (2):  
                break;
            case (3):
                break;
            case (4):   
                break;
            case (5):   
                break;    
            case (6):    
                return (EXIT_SUCCESS);
        }
        
    
        
    }

     

    • 5 respostas
  14. Re: Depois da Apple, o FBI obriga Sony a partilhar dados da playsation

    M6
    Por M6,

    Deve ter andado a jogar CoD...

    É uma tendência e isso é apenas parte das situações que são tornadas públicas...

    • 1 resposta
  15. Backend developer - Lisboa | Grupo Bel

    andrefilipe98
    Por andrefilipe98,

    O Innovation Center, do Grupo Bel, é um centro de investigação e inovação dedicado ao desenvolvimento e gestão de soluções tecnológicas de última geração na área das tecnologias da informação, com especial foco na criação de patentes associadas aos produtos das empresas do Grupo, combinando criatividade, eficiência, investigação, desenvolvimento e educação.

    Atualmente, encontram-se em desenvolvimento projetos na área de M2M e IoT, desde projetos de máquinas de vending, sistemas inteligentes e autónomos, sistemas de pagamento virtuais e sua integração em diversificados meios (terminais POS, máquinas de vending, etc.).

    O que procuramos:
    - Formação superior em Engenharia Informática ou similar;
    - Boa capacidade de comunicação, iniciativa, dinamismo e proatividade;
    - Conhecimentos sólidos em Java e SQL;
    - Experiência com Spring Boot, Spring Data, JPA e Rest APIs.

    Valorizamos ainda:
    - Conhecimentos em NodeJS e Swagger;
    - CSS / SASS, HTML5;
    - Assegurar soluções inovadoras;
    - Conhecimentos ao nível de SOA e padrões de design;
    - Garantir flexibilidade e melhoria contínua.

    Oferecemos:
    - Integração em equipa jovem e dinâmica;
    - Participação em projetos de projeção internacional;
    - Enquadramento salarial de acordo com a experiência demonstrada.

    Junta-te à nossa equipa e envia já o teu CV e carta de motivação paracandidatura@grupobel.pt

    • 0 respostas
  16. Re: Yiii2 - Problema com login e sessão

    M6
    Por M6,

    Tenho várias aplicações sobre Yii2 em produção e nunca tive semelhante problema, vamos lá ver se consigo ajudar.

    O login é meio "manhoso", é, talvez, a coisa menos linear que há de raiz na framework. Presumo que tenhas alterado o model do User para fazeres o login como deve ser contra uma tabela de utilizadores, certo?

    Começa por despistar se poderá ser um problema de browser/cookies. Arranca o browswer limpo em modo "private" e verifica se o problema se mantém.

    Quando referes que "regista a sessão na tabela", referes-te precisamente a quê? Eu uso apenas sessões em ficheiros, deixo isso a cargo da Yii2/Apache.

    • 2 respostas
  17. Frontend developer - Lisboa | Grupo Bel

    andrefilipe98
    Por andrefilipe98,

    O Innovation Center, do Grupo Bel, é um centro de investigação e inovação dedicado ao desenvolvimento e gestão de soluções tecnológicas de última geração na área das tecnologias da informação, com especial foco na criação de patentes associadas aos produtos das empresas do Grupo, combinando criatividade, eficiência, investigação, desenvolvimento e educação.

    Atualmente, encontram-se em desenvolvimento projetos na área de M2M e IoT, desde projetos de máquinas de vending, sistemas inteligentes e autónomos, sistemas de pagamento virtuais e sua integração em diversificados meios (terminais POS, máquinas de vending, etc.).

    O que procuramos:
    - Formação superior em Engenharia Informática ou similar;
    - Boa capacidade de comunicação, iniciativa, dinamismo e proatividade;
    - Experiência com React e React Native;
    - Conhecimentos básicos iOS e Android;
    - Experiência em JavaScript e NodeJS;
    - CSS, HTML5.

    Valorizamos ainda:
    - Conhecimentos de Java e Rest APIs;
    - Assegurar soluções inovadoras;
    - Garantir flexibilidade e melhoria contínua.

    Oferecemos:
    - Integração em equipa jovem e dinâmica;
    - Participação em projetos de projeção internacional;
    - Enquadramento salarial de acordo com a experiência demonstrada.

    Junta-te à nossa equipa e envia já o teu CV e carta de motivação para candidatura@grupobel.pt

    • 0 respostas
  18. Re: [Resolvido] Sequência de Fibonacci

    Zagaz
    Por Zagaz,

    Refiz meu código e o deixei mais enxuto.;)

    Segue o link com o código funcionando: FIBONACCI

     

    using System;
    public class MainClass {
      public static void Main () {
        /*******************************************************
        * Este é um programa que gera uma sequencia Fibonacci.
        *This is a program that generates a Fibonacci Sequence.
        * 0,1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144...
        *********************************************************
        */
        
        long fibonnaci=1;
        long sequencia;
        long numPre=0; 
        long numPos=1;
       // int tempFibonacci = 0;
        string valor;
        
        Console.WriteLine("Digite o tamanho da sequencia. ex.: 11, 5, 22, etc.");
        Console.WriteLine("Type the size of the sequence. eg.: 11, 5, 22, etc. \n");
        valor = Console.ReadLine();
        sequencia = long.Parse(valor);
        
        Console.WriteLine("\nFibonacci \n");
        Console.Write("0 ,");
        
        for(int i = 0; i<=sequencia ; i++){
        
        // O numero Fibonacci com a soma do numero anterios (pre) e o posterior (pos).
        //Exemplo  3+2=5  5+3=8 8+5=13...
        fibonnaci = numPre + numPos; //  0 + 1  - fibonnaci=1
        //Após fazer a o calculo na variavel "tempFibonacci", substitui as posições.
        //O numero atual se torna numero anterior e o resultado se torna o resultado desse loop.
        numPre=numPos;
        numPos=fibonnaci ;
        Console.Write(fibonnaci+ ", ");
         
        }  } }

     

    • 11 respostas
  19. Re: Livro "Distributed Systems" (3rd edition, 2017) disponível gratuitamente

    Virneto
    Por Virneto,

    foi mesmo. ;)

    já submeti subscrição.

    grazie!!

    • 4 respostas
  20. Re: Lançar valor monetário no banco

    Rui Carlos
    Por Rui Carlos,

    O parseDouble usa um . como separador decimal.  Como tens uma ,, uma solução é substituir antes: Double.parseDouble(lblValor.getText().replace(",", "."));.

    Também podes usar a classe java.text.NumberFormat, mas não me parece vantajoso.

    • 1 resposta
  1. Ver Mais Actividade
×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.