Ir para conteúdo
Fórum Script Brasil

tuga

Membros
  • Total de itens

    48
  • Registro em

  • Última visita

Posts postados por tuga

  1. Boas

    Estou com um projecto com o objectivo de realizar um servidor de ficheiros. Este já está feito agora estou implementando os extras. Para já já fiz a opção de visualizar o ficheiro no caso de ser imagem mas gostaria de implementar mais extras......

    Se sabem de algum porreiro por favor deem ideias.... Estou aberto a sugestões...

    Obrigado e postem alguma coisa :)

    TUGA B)

  2. boas estou a tentar fazer uma copia de um uma imagem .gif através da leitura e escrita binaria mas não está a funcionar

    o que eu tentei fazer foi:

    #include <stdio.h>   /* Standard input/output definitions */
    #include <string.h>  /* String function definitions */
    #include <unistd.h>  /* UNIX standard function definitions */
    #include <fcntl.h>   /* File control definitions */
    #include <errno.h>   /* Error number definitions */
    #include <termios.h> /* POSIX terminal control definitions */
    #include<stdlib.h>
    
    typedef struct dados{
    
        
    
            char *dado;
            
    
        
    
            struct dados *next;
    
            
    
            }tdados, *Aptdados; 
    
            
    
        Aptdados dados;
        
    
    void inserirdado(char dado[20])
    {
        Aptdados info;
        
        info = (Aptdados)malloc(sizeof(tdados));
    
        strcpy(info->dado, dado);
        
    
        if(dados == NULL)
        {
            info->next = NULL;
            dados = info;
        }
        else
        {
            info->next = dados;
            dados = info;
        }
    }
    int le()
    {
    
    
        FILE *fp;
        char dado[20];
        int n;
        
        
        fp = fopen("lecom.gif","r");
        
    
        while(n > 19)
            {
            n = fread(dado, 1, 20, fp);
            inserirdado(dado);
            
            }
            
            printf("\n Leitura completa.");
            
            fclose(fp);
            getchar();
            
            return 1;
    }
    
    int escreve()
    {
        Aptdados m;
        m = dados;
        FILE *fd;
        
        fd = fopen("cop.gif","w");
    
        while(m != NULL)
            {
            fwrite(m->dado, 1, 20, fd);
            m = m->next;
            }
        printf("\n Cópia completa\n");
        
        fclose(fd);
        
        return 1;
    }
    
    int main()
    {
        le();
        getchar();
        escreve();
        
        
        return 1;
    }

    Este código assim está a dar falha de segmentação

    Se alguém puder ajudar agradecia

    Cumps Thga

  3. Tou a realizar um projecto de comunicações e tenho tudo bem encaminhado, mas cheguei à parte do CRC/CHECKSUM e estou com alguma dificuldade nisto.

    Ou seja eu tenho uma trama(char trama[46]) que vai ser um pacote que consiste em 46bytes e dentro dessa trama eu terei de colocar um valor correspondente ao crc/checksum.Será que alguém poderá enumerar os passos necessários para obtenção desse valor

    Cumprimentos

    Tuga

  4. Boas

    Tou a realizar um projecto de comunicações e tenho tudo bem encaminhado, mas cheguei à parte do CRC/CHECKSUM e estou com alguma dificuldade nisto.

    Ou seja eu tenho uma trama(char trama[46]) que vai ser um pacote que consiste em 46bytes e dentro dessa trama eu terei de colocar um valor correspondente ao crc/checksum.Será que alguém poderá enumerar os passos necessários para obtenção desse valor

    Cumprimentos

    Tuga

  5. Boas

    Segundo eu compreendi o problema é ver o tamanho real de uma string, se é isso basta usar a função strlen() da libraria string.h

    Olhe o código

    #include <stdio.h>
    #include <string.h>
    
    
    int main()
    {
    
        char vect[30] = {"ola"};
        
        printf("\n o tamanho real é %d ", strlen(vect));
        getchar();
        
        return 1;
        
    }

    o resultado da execução vai ser " o tamanho real é 3 "

    cumps

  6. por acaso não sabia isso não, mas me deparei com outro problema, pois normalmente os arquivos de som são maiores que 97.7kb (100000) se acrescentar uma 0 na variavel "read", ele dá falha de segmentação, existe alguma maneira de contornar este problema ?

    e só mais uma qustão, porque é que inicializa a variavel "short int bytesRead = 0x03FF;" com este valor?

    Abraços

  7. Boas

    em termos de caracteres eu já tinha experimentado mas em termos de som não consegui ainda. Com a ajuda de seu código fiz :

    int main(void) 
    {
        FILE *file;
        FILE *wfile;
        
        char read[100000];
        short int bytesRead = 0x03FF;
        
        file = fopen("1.wav", "r");
        wfile = fopen("cop.wav", "w+");
        
        while( bytesRead > 0 ) {
            bytesRead = fread(&read, 1, 100000, file);
        }
        
        fwrite(read, 1, strlen(read), wfile);
        
        fclose(file);
        fclose(wfile);
        
        return 0;
    }

    fiz desta maneira mas não tá funcionando

    se tiver alguma coisa que ajude agradecia

  8. boas

    gostaria de saber se é possível guardar a informação de um arquivo audio numa string. tipo:

    char som[];
    FILE *fp;
    .......
    abrir ficheiro
    while( != EOF)
           read(fp, &som, sizeof(som));
    
    ........

    isto assim, e caso quisesse construir outra vez o ficheiro seria utilizar a função write()....

    Digam se isto é possivel ou existe uma maneira mais facil, ou mais dificil, deem links de outras paginas, sobretudo ajudem postem algo

    Abraço

  9. oi Ana

    bem eu axo que é mais ou menos isto

    #include <stdio.h>
    #include <string.h>
    #include <conio.h>
    
    
    #define MAXV 20
    #define MAXM 10001
    
    
    int main(){
    
    char linha[100];;
    int a,t=0;
    char v[MAXV];
    char car[MAXV];
    int i,ch;
    int b;
    int nc;
    char bo;
    FILE*arquivo;
    b=0;
    
    
    arquivo=fopen("entrada.txt", "r");
    
    fscanf(arquivo, " %d", &a);
    if((a<1)||(a>MAXM)){
    printf("\nErro: O numero lido excede o numero maximo de operacoes aceito pelo programa!!!\n\n");
    printf("\nO programa aceita no maximo 10000 operacoes de troca!!!\n\n");
    getchar();getchar();
    exit(1);
    }
    /*fgets(linha, 100, arquivo);
    nc=strlen(linha);
    if(nc<1){
    printf("\nErro: não há string no arquivo!!!\n\n");
    getchar();getchar();
    exit(1);
    }*/
    
    
    printf(" %d\n", a);
    getchar();
    
    
    for(i=0; i<MAXV; i++){
         while(fscanf(arquivo, " %c", &ch) != EOF){
         
    
           
            printf(" %c\n", ch); 
            
            
                      }
                      printf("\n não há mais caracteres no arquivo!!!\n\n");
                      getchar();exit(1);
            }
    }

    Agora só falta a comparação com os caracteres, eo seja, se for caracter não imprime e mete num vector, senão imprime....

    Nota só no fim imprimes o vector de caracteres.

    Bem agora axo que tá facil mas deixo pa você

    Cumprimentos de Portugal

  10. boas

    tou fazendo um projecto escolar e gostaria de saber se há alguma função para captar o som vindo da placa de som(tipo microfone) constantemente, já agora tou trabalhando em linux.

    Se puderem ajudar agradecia.

    Obrigado

    cumps

    Tuga

  11. oi pessoal

    tava eu fazendo o meu projecto de universidade para uma cadeira quando esbarrei num problema pois ao adicionar um item ao arraylist ele dá erro "NULLPOINTER EXCEPTION"

    vou postar o codigo para ver se descobrem algo...

    dá erro ao adicionar um novo pedido no metodo public void addpedidonovo.....

    import java.util.*;
    import java.io.*;
    
    public class Ugestao 
    {
        private String nome;
        ArrayList <Pedido>pedidos_atendidos;
        ArrayList <Pedido>pedidos_nao_atendidos;
        ArrayList <Veiculos>taxis;
        ArrayList <Veiculos>shuttles;
        
        
        public Ugestao()
        {
        nome = "";
        ArrayList <Pedido> pedidos_atendidos = new ArrayList<Pedido>();
        ArrayList <Pedido> pedidos_nao_atendidos = new ArrayList<Pedido>();
        ArrayList <Veiculos> taxis = new ArrayList<Veiculos>();
        ArrayList <Veiculos> shuttles = new ArrayList<Veiculos>();
            }
         
            
        public Ugestao(String nome)
        {
        this.nome = nome;
        ArrayList <Pedido> pedidos_atendidos = new ArrayList<Pedido>();
        ArrayList <Pedido> pedidos_nao_atendidos = new ArrayList<Pedido>();
        ArrayList <Veiculos> taxis = new ArrayList<Veiculos>();
        ArrayList <Veiculos> shuttles = new ArrayList<Veiculos>();
       
            }
            
            
            
        public ArrayList<Pedido> getpedidosatendidos(){return  pedidos_atendidos;}
        
        public ArrayList<Pedido> getpedidos_nao_atendidos(){return  pedidos_nao_atendidos;}
        
        public void addpedidonovo(String nome, String local_recolha, String local_descarga, String contacto, String numero_pessoas){
            
            pedidos_nao_atendidos.add(new Pedido(nome, local_recolha , local_descarga , contacto, numero_pessoas));
           
        }
    }

    Bem se puderem ajudar agradecia

    Obrigado

  12. ei kandrade

    ei já fiz essa parte de codigo e compila e executa certinho mas quando introduza a informação nesta lista ele dá erro de memoria

    void FE::inserirord(Aptle lista, Ident idente)
    {
        if (lista->first == NULL)
            addFirst(idente);
        else 
            if (idente.get_grav() > lista->first->ident1.get_grav())
                addFirst(idente);
            else 
                if (idente.get_grav() < lista->last->ident1.get_grav()) 
                    addLast(idente);
          // now must have at least two items in list
          else {
             Aptle oldIter = lista->first;
             Aptle iter = lista->first->next;
             while (iter->ident1.get_grav() > idente.get_grav())
             {
                oldIter = iter;
                iter = iter->next;
             }
             // here iter.data >= x
             // insert x into a new node before iter
             //IntListNode newNode = new IntListNode();
             //newNode.data = x;
             struct le *item;
             item = (Aptle)malloc(sizeof(tle));
             item->ident1=idente;
             
             item->next = iter;            // iter == oldIter.next
             oldIter->next->ident1 = idente;
          }
          lespera=lista;
    }
    
    
    void FE::addFirst(Ident idente)
    {
        Aptle lista = lespera;
        
    
        lista->first->ident1 = idente;
    
            if(lista==NULL)
                lista->last->ident1=idente;
    
        lespera=lista;
    }
    
    void FE::addLast(Ident idente)
    {
        Aptle lista = lespera;
        
    
        
    
        if (lista->last == NULL) // treat case of empty linked list
        {
            lista->last->ident1 = idente;
            lista->first = lista->last;
        }
        else // case of non-empty linked list
        {
            lista->last->next->ident1 = idente;
            lista->last = lista->last->next;
        }
          lista->last->ident1 = idente;
          lista->last->next = NULL;
    
          lespera=lista;
    }

    eu já fiz varios testes, e acho que o erro deve-se ao facto de não inicializar os apontadores e a lista a NULL, mas não tenho a certeza e tb não sei como inicializar a NULL

    eu axo que posso estruturar meu codigo assim não posso??

  13. oi pessoal:

    tou fazendo uma base de dados que requer uma lista ordenada e eu não tou conseguindo fazer lá muito bem....

    eu vou postar a setrutura para vocês compreenderem melhor

    inserir(Aptle lista, Ident idente)
    {
        
         if(lista==NULL || lista->first->ident1.get_grav() < idente.get_grav())  // se a lista estiver vazia ou o elemento a inserir tiver a maior gravidade é preciso inserir no inicio da lista
         {
        inserirnoinicio(Aptle lista, Ident idente);
         }
         else
         {
        // procura a posicao que deve inserir
        while(lista!=NULL && lista->ident1.get_grav() < idente.get_grav())    // enquanto a lista for fiferente de NULL e a gravidade maior percorre a lista
        {
            lista = lista->next;
        }
    
        inserenaposicao(Aptle lista, Ident idente);   // ao sair do ciclo quer dizer que ou é NULL e vai inserir no fim da lista, ou encontrou um elemento com gravidade menor e tem de inserir naquela posição
            
        }
        
    }
    ou seja tou postando isto porque necesito de fazer as duas funções---------inserirnoinicio(Aptle lista, Ident idente); e inserenaposicao(Aptle lista, Ident idente); eu penso que no conteudo da primeira função, na inserirnoinicio(Aptle lista, Ident idente); eu teria isto, se encontrarem algum erro no código avisem pf:
    inserirnoinicio(Aptle lista, Ident idente)
    {     
                                                  lista = (Aptle)malloc(sizeof(tle));
                                                  lista->ident1=idente;
                                                  lista->next = NULL;
    }

    bem pessoal se puderem dar uma vista de olhos e ajudarem aí agredecia muito

    Obrigado

  14. oi:

    seu código está um bocado confuso

    #include <stdio.h>
    #include <stdlib.h>
    #define MAX 10
    main()
    {
    int vet[MAX], total, i; 
     for(i = 0; i<MAX; i++){              // até ao fim do vector faz
    printf("Digite um numero: ");    // pede para inserir os valores no vector
    scanf("%d", &vet[i]);                // guarda os valores inseridos no vector
    }
    i=0;
    total = 0;
    for(i=1; i<MAX; i++)
    if(vet[i]%2==0)
    total++;                                  // incrementa na variavel total 
    printf("%d elementos pares",total);          //o numero de pares está guradado na variavel total
    getchar();                                             // aguarda que você prima enter
    getchar();
    return 0;
    }

    seu erro era usar a mesma variavel no ciclo e no contador das ocorrencias, no inicio tb tinha o erro de imprimir o vetor antes de inserir os valores

    bem espero ter ajudado

    se ainda tiver duvidas post alguma coisa

    cumps

  15. oi pessoal

    tou com uma duvida, ou mesmo um problema....é que tou fazendo uma base de dados e empanquei no metodo de guadar/carregar a lista, epero que vccs deem uma ajuda..bem eu vou postar o que fiz..

    este é o metodo que guarda num ficheiro

    guardardoentes(void)
    {
        FILE *fp;
        Aptdoentes j = doentes;
        tdoentesaux jaux;
        fp=fopen("Doentes.dat","w");
    
        while(j!=NULL)
        {
            strcpy(jaux.num,j->doente1.get_num());
            strcpy(jaux.nome,j->doente1.get_nome());
            strcpy(jaux.morada,j->doente1.get_morada());
            strcpy(jaux.tlf,j->doente1.get_tlf());
            strcpy(jaux.tlm,j->doente1.get_tlm());
            strcpy(jaux.sexo,j->doente1.get_sexo());
            strcpy(jaux.bi,j->doente1.get_bi());
            strcpy(jaux.data_nasc,j->doente1.get_data_nasc());
            jaux.numEpisodios -> j->doente1.getnumepisodios();
            
            fwrite(&jaux,sizeof(tdoentesaux),1,fp);
            getchar();
            j=j->next;
        }
        fclose(fp);
    }
    ou seja neste código eu estou a passar os valores da estrutura original para uma estrutura auxiliar e "tdoentes" é a variavel da estrutura este é o metodo que carrega do ficheiro
    carregardoentes(void)
    {
        FILE *fp;
    
        fp = fopen("Doentes.dat","r");
        doentes = NULL;
        tdoentesaux jaux;
    
        while(fread(&jaux, sizeof(tdoentesaux),1,fp)!=0)
        {
            Doente j(jaux.num ,jaux.nome ,jaux.morada ,jaux.tlf ,jaux.tlm ,jaux.sexo ,jaux.bi ,jaux.data_nasc,jaux.numEpisodios);
            j.printdoente();
            inserir(j);
        }
        printf("\n Doentes carregados!!!\n\n");
        getchar();
        fclose(fp);
    }

    ou seja lê a variavel da estrutura cria o objecto e insere na lista

    o problema é que uns valores aparecem trocados e alguns até aparecem 2 valores numa só variavel

    se encontrarem algum erro no código ou tiverem uma ideia mais simples em como fazer digam qualquer coisa

    obrigado

  16. você te m o conteudo do alloc.h no seguinte link link

    para o tornar uma header ou seja para ficar ".h" basta abrir o seu compilador fazer copy paste do código e por "save as" e como tipo põe "header file" e claro põe na pasta dos include...é simples

    se assim ainda tiver alguma dúvida post qulquer coisa..

    até mais

×
×
  • Criar Novo...