• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

febra

Gravar informação recebida em C para um ficheiro

10 mensagens neste tópico

Parte I 

Então é o seguinte, eu tenho de fazer um trabalho em c e ja fiz o seguinte código:

#include <stdio.h>

//Declaração de estruturas
struct  time t;
struct date d;

typedef struct{
  float cb_1;
  float cb_2;
  float ap;
  float re_1b;
  float re_2b;
  float re_p;
  int temp;
  char nome_criador[MAX];
  char comentario[250];
}MOV;


//Declaração de funções
char menu(void);
char sub_menu(char op);
void ficheiro_movimento(float mat_movimentos[7][MAX],int conta_mov);
void simulacao(MOV movimento);
void Efectuar_um_movimento(MOV movimento);
void guardar_movimento(MOV movimento,float mat_movimentos[7][MAX],int conta_mov,char nome[]);
void editar_movimento(MOV movimento,float mat_movimentos[7][MAX],int conta_mov,char nome[]);
void grava_dados_cmdrobot(MOV movimento);
void temporizador(int *msegundos);
void data(void);
void hora(void);

void main()
{

  char op, sair_prog, op_sub, nome[100];
  int conta_mov=-1,conta=0;
  float mat_movimentos[7][MAX]={0};
  MOV movimento;



  do{
    op=menu();

        switch(op){

          case 'A':
                    op_sub=sub_menu(op);
                    switch(op_sub){

                            case'F':
                                    clrscr();
                                    if(conta_mov!=-1)
                                      ficheiro_movimento(mat_movimentos,conta_mov);
                                    else{
                                      printf("Opcao invalida, tem de guardar primeiro um movimento para que possa fazer a simulacao!");
                                      getch();
                                      }
                                    break;

                            case'I':
                                    clrscr();
                                    simulacao(movimento);//Faz uma simulação do braço a agarrar num objecto e colucalo numa parteleira
                                    break;
                            }//fim do swich
                            break;

          case 'M':
                    op_sub=sub_menu(op);

                      switch(op_sub){

                            case'E':
                                    clrscr();
                                    conta++;
                                    Efectuar_um_movimento(movimento);//Abre a função que recebe os valores introduzidos pelo utilizador
                                    break;

                            case'G':
                                    clrscr();
                                    conta_mov++;
                                    if(conta!=0)
                                      guardar_movimento(movimento,mat_movimentos,conta_mov,nome);//Abre a função que goarda o movimento
                                    else{
                                      printf("Opcao invalida, tem de efectuar primeiro um movimento para que o possa guardar!");
                                      getch();
                                      }
                                    break;

                            case'D':
                                    clrscr();
                                    if(conta_mov!=-1)
                                      editar_movimento(movimento,mat_movimentos,conta_mov,nome);//Abre a função que edita o movimento
                                    else{
                                      printf("Opcao invalida, tem de guardar primeiro um movimento para que possa edita-lo!");
                                      getch();
                                      }
                                    break;
                            }//fim do swich
                            break;

          case 'S':
                 do
                 {
                        printf("\nTem a certeza que deseja sair?(S/N)\n");
                        sair_prog=getch();

                        sair_prog=toupper(sair_prog);

                        if(sair_prog=='N')
                          op='A';

                 }while(sair_prog!='S' && sair_prog!='N');
                 break;

            }//Fim do swicth

      }while(op!='S');
}//Fim da main


                                    ///////////////////
                                    ///F U N Ç Õ E S///
                                    ///////////////////


///////////////
//Função menu//
///////////////
char menu(void)
{

  char op;

  clrscr();
  printf("\n\t  M E N U\n\n\n");
  printf("\nModo (A)utomatico\n");
  printf("\nModo (M)anual\n");
  printf("\n(S)air\n\n");
  printf("\n\n Escolha uma opcao: ");


   fflush(stdin);
   op=getch();
   op=toupper(op);

    if(op!='A' && op!='M' && op!='S'){
      printf("\n\n!!ERRO!! Opcao invalida...");
      getch();


    }


  return op;
}//Fim da main



///////////////////
//função sub-menu//
///////////////////
char sub_menu(char op)
{

  char op_sub;

  switch(op){

          case 'A':
                     do{
                     clrscr();
                     printf("\n\t  M E N U\n\n\n");
                     printf("\nModo Automatico\n");
                     printf("\n\t(F)icheiro de Movimentos\n");
                     printf("\n\tS(i)mulacao de Movimento de Pegar Objecto e coloca-lo em Prateleira\n\n");
                     printf("\n\t(R)etroceder\n");
                     printf("\nModo Manual\n");
                     printf("\nSair\n\n");
                     printf("\n\n Escolha uma opcao: ");

                     fflush(stdin);
                     op_sub=getch();
                     op_sub=toupper(op_sub);


                     if(op_sub!='R' && op_sub!='F' && op_sub!='I'){
                       printf("\n\n!!ERRO!! Opcao invalida...");
                     getch();
                     }
            }while(op_sub!='R' && op_sub!='F' && op_sub!='I');
            break;

          case 'M':
                     do{

                     clrscr();
                     printf("\n\t  M E N U\n\n\n");
                     printf("\nModo Automatico\n");
                     printf("\nModo Manual\n");
                     printf("\n\t(E)fectua um movimento\n");
                     printf("\n\t(G)ravar Movimento\n");
                     printf("\n\tE(d)itar Ficheiro\n\n");
                     printf("\n\t(R)etroceder\n");
                     printf("\nSair\n\n");
                     printf("\n\n Escolha uma opcao: ");

                     fflush(stdin);
                     op_sub=getch();
                     op_sub=toupper(op_sub);

                     if(op_sub!='R' && op_sub!='E' && op_sub!='G' && op_sub!='D'){
                       printf("\n\n!!ERRO!! Opcao invalida...");
                     getch();
                     }
            }while(op_sub!='R' && op_sub!='E' && op_sub!='G' && op_sub!='D');
            break;

          }//fim do swich

     return op_sub;

}//Fim da função

/////////////////////////
//Ficheiro de movimento//
/////////////////////////
void ficheiro_movimento(float mat_movimentos[7][MAX],int conta_mov)
{

  FILE *fp;
  int msegundos,i,j;


    printf("\n\n(Prima uma tecla para comecar a simulacao)\n");
    getch();

   do{
     printf("\nIntroduza o tempo entre os movimentos em (ms) [0 - infinito[: ");
     scanf(" %d",&msegundos);
     }while(msegundos<0);


    for(j=0;j<=conta_mov;j++){

      temporizador(&msegundos);

      fp=fopen(NOME_FICH,"w");

      for(i=0;i<7;i++){

        fprintf(fp,"%.3f\n",mat_movimentos[j]);//grava os valores no ficheiro
      }

      fclose(fp);
    }

}//Fim da função


//////////////////////////
//Simulação de movimento//
//////////////////////////
void simulacao(MOV movimento)
{

  int i,msegundos;

  clrscr();
  fflush(stdin);

  printf("\n\n(Prima uma tecla para comecar a simulacao)\n");
  getch();

       movimento.cb_1=10;
       movimento.cb_2=10;
       movimento.ap=0;
       movimento.re_1b=0;
       movimento.re_2b=0;
       movimento.re_p=0;
       movimento.temp=10;    //Valores iniciais pre-defenidos

   grava_dados_cmdrobot(movimento);//Actualiza o ficheiro

   do{
     printf("\nIntroduza o tempo entre os movimentos em (ms) [0 - infinito[: ");
     scanf(" %d",&msegundos);
     }while(msegundos<0);

     for(i=0;i<100;i++) {

         temporizador(&msegundos);

         movimento.cb_2++;

         movimento.cb_1+=2;

         grava_dados_cmdrobot(movimento);//Actualiza o ficheiro (estica os dois braços do robot)
     }

     for(i=0;i<20;i++){

         temporizador(&msegundos);

         movimento.ap+=0.05;

         grava_dados_cmdrobot(movimento);//Actualiza o ficheiro (abre a pinça para agarrar o objecto)

     }

     for(i=0;i<20;i++){

         temporizador(&msegundos);

         movimento.ap-=0.05;

         grava_dados_cmdrobot(movimento);//Actualiza o ficheiro (fecha a pinça com o objecto agarrado)

    }

     for(i=0;i<50;i++) {

         temporizador(&msegundos);

         movimento.cb_1--;

         movimento.cb_2--;

         movimento.re_1b-=0.02;

         movimento.re_2b+=0.02;

         grava_dados_cmdrobot(movimento);//Actualiza o ficheiro (reduz os dois braços do robot e roda-os)
     }

     for(i=0;i<50;i++) {

         temporizador(&msegundos);

         movimento.cb_1++;

         grava_dados_cmdrobot(movimento);//Actualiza o ficheiro (aumenta o 1º braço do robot(cor de laranja))
     }

     for(i=0;i<50;i++){

         temporizador(&msegundos);

         movimento.re_2b+=0.03;

         movimento.re_p-=0.03;

         grava_dados_cmdrobot(movimento);//Actualiza o ficheiro (roda o 2º braço do robot e a pinça)
     }

     for(i=0;i<40;i++) {

         temporizador(&msegundos);

         movimento.cb_2+=2;

         grava_dados_cmdrobot(movimento);//Actualiza o ficheiro (aumenta o 2º braço do robot (verde))
     }


     for(i=0;i<20;i++){

         temporizador(&msegundos);

         movimento.ap+=0.05;

         grava_dados_cmdrobot(movimento);//Actualiza o ficheiro (abre a pinça para largar o objecto)

     }

     for(i=0;i<20;i++){

         temporizador(&msegundos);

         movimento.ap-=0.05;

         grava_dados_cmdrobot(movimento);//Actualiza o ficheiro (fecha a pinça)

    }


   for(i=0;i<100;i++) {

         temporizador(&msegundos);

         movimento.cb_1--;

         movimento.cb_2--;

         grava_dados_cmdrobot(movimento);//Actualiza o ficheiro (reduz os dois braços do robot)
     }

    for(i=0;i<40;i++) {

         movimento.cb_1=10;

         movimento.cb_2=10;

         movimento.ap=0;

         movimento.re_1b=0;

         movimento.re_2b=0;

         movimento.re_p=0;

         movimento.temp=10;

         grava_dados_cmdrobot(movimento);//Actualiza o ficheiro (coloca o robot no sitio)
    }

}//fim funçao



////////////////////
//Função movimento//
////////////////////
void Efectuar_um_movimento(MOV movimento)
{


  FILE*fp;

    fp=fopen(NOME_FICH,"w");


    //comprimento do 1º braço
    do{
    printf("\n\nIntroduza o comprimento do 1§ braco. Limite a respeitar:[10 - 200]\n");
    fflush(stdin);
    scanf(" %f",&movimento.cb_1);
    }while(movimento.cb_1<10 || movimento.cb_1>200);

    grava_dados_cmdrobot(movimento);//Actualiza o ficheiro

    //comprimento do 2º braço
    do{
    printf("\n\nIntroduza o comprimento do 2§ braco. Limite a respeitar:[10 - 200]\n");
    fflush(stdin);
    scanf(" %f",&movimento.cb_2);
    }while(movimento.cb_2<10 || movimento.cb_2>200);

    grava_dados_cmdrobot(movimento);//Actualiza o ficheiro


    //abertura das pinças
    do{
    printf("\n\nIntroduza o valor de abertura da pinca. Limite a respeitar:[0 - 1]\n");
    fflush(stdin);
    scanf(" %f",&movimento.ap);
    }while(movimento.ap<0 || movimento.ap>1);

    grava_dados_cmdrobot(movimento);//Actualiza o ficheiro


    //rotação do 1º braço
    do{
    printf("\n\nIntroduza o valor de rotacao do eixo do 1§ braco(em radianos). Limite a respeitar:[0 - 2pi]\n");
    fflush(stdin);
    scanf(" %f",&movimento.re_1b);
    }while(movimento.re_1b<0 || movimento.re_1b>6.28);

    grava_dados_cmdrobot(movimento);//Actualiza o ficheiro


    //rotação do 2º braço
    do{
    printf("\n\nIntroduza o valor de rotacao do eixo do 2§ braco (em radianos). Limite a respeitar:[0 - 2pi]\n");
    fflush(stdin);
    scanf(" %f",&movimento.re_2b);
    }while(movimento.re_2b<0 || movimento.re_2b>6.28);

    grava_dados_cmdrobot(movimento);//Actualiza o ficheiro


    //rotação do 2º braço
    do{
    printf("\n\nIntroduza o valor de rotacao do eixo da pinca (em radianos). Limite a respeitar:[0 - 2pi]\n");
    fflush(stdin);
    scanf(" %f",&movimento.re_p);
    }while(movimento.re_p<0 || movimento.re_p>6.28);

    grava_dados_cmdrobot(movimento);//Actualiza o ficheiro


    //tempo antes de fazer o movimento seguinte
    do{
    printf("\n\nIntroduza o tempo antes de fazer o movimento seguinte (em ms). Limite a respeitar:[0 - infinito[\n");
    fflush(stdin);
    scanf(" %d",&movimento.temp);
    }while(movimento.temp<0);

    grava_dados_cmdrobot(movimento);//Actualiza o ficheiro

    data();//printa a data o ecrã
    hora();//printa a hora no ecrã

    fclose(fp);

}//Fim da função



////////////////////////////
//Função guardar movimento//
////////////////////////////
void guardar_movimento(MOV movimento,float mat_movimentos[7][MAX],int conta_mov,char nome[])
{

  FILE*fp;
  int i,j,k;
   

  fp=fopen(NOME_FICH,"r");

  if((fp=fopen(NOME_FICH,"r"))==NULL)

    printf("\nErro na abertuta do Ficheiro para Leitura!");

  else{

    for(j=conta_mov;j<=conta_mov;j++){

      for(i=0;i<7;i++){

        fscanf(fp,"%f",&mat_movimentos[j]);//grava os valores do ficheiro numa matriz dentro do programa
      }
    }


  fclose(fp);
  }


    printf("\nIntroduza a directoria do ficheiro\n");
    fflush(stdin);
    gets(nome);


  fp=fopen(nome,"a");

  fprintf(fp,"\t\t[%i]\n",conta_mov+1);//coloca no ficheiro o numero de movimento que esta a ser gravado

    for(j=conta_mov;j<=conta_mov;j++){

      for(i=0;i<7;i++){

       fprintf(fp,"%.3f\n",mat_movimentos[j]);//grava os valores no ficheiro global
      }
    }



    fprintf(fp,"%d-%d-%d", d.da_year,d.da_mon,d.da_day);//grava o ano, mes e dia no ficheiro

    fprintf(fp,"\t%2d:%02d:%02d.%02d\n",t.ti_hour,t.ti_min,t.ti_sec,t.ti_hund);//grava a hora no ficheiro


    //nome do criador do movimento
    printf("\nIntroduza o nome do criador do movimento.\n");
    fflush(stdin);
    gets(movimento.nome_criador);

    fprintf(fp,"%s\n",movimento.nome_criador);//grava o nome do criador no ficheiro


    //comentario
    printf("\nIntroduza o comentario referente ao movimento efectuado.\n");
    fflush(stdin);
    gets(movimento.comentario);

    fprintf(fp,"%s\n",movimento.comentario);//grava o comentario no ficheiro



    for(k=0;k<=50;k++)

      fprintf(fp,"*");//cria uma barra no fim de cada movimento para que fique separados


    fprintf(fp,"\n");


  fclose(fp);


}//Fim da função
 
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

////////////////////////////////////
//Função editar movimento///
///////////////////////////////////
void editar_movimento(MOV movimento,float mat_movimentos[7][MAX],int conta_mov,char nome[])
{

 FILE*fp;
 int i,j,k,mov_escolhido=0,op_edit=0;


 printf("\nVisualize todos os movimentos guardados ate ao momento e introduza o numero do movimento que deseja editar.\n\n",nome);


   for(j=0;j<=conta_mov;j++){

     printf("\n\t\t(%i)\n",j+1);//printa no ecrã o numero de movimento

     for(i=0;i<7;i++){

       printf("%.3f\n",mat_movimentos[j]);//printa no ecrã os movimentos gravados
     }

     for(k=0;k<30;k++){

       printf("*");//printa no ecrã uma barra de * para dividir os movimentos
     }
   }

   printf("\n");

   scanf("%i",&mov_escolhido);//guarda o numero do movimento que deseja editar

   clrscr();
   printf("\n\t\tMovimento:(%i)\n",mov_escolhido);//printa o numero do movimento escolhido anteriormente

   for(j=mov_escolhido-1;j<mov_escolhido;j++){
     for(i=0;i<7;i++){

       printf("(%i) %.3f\n",i+1,mat_movimentos[j]);//printa no ecrã o movimento escolhido anteriormente

     }
   }

   do{
   printf("\nIndique qual o valor que deseja alterar.");
   op_edit=getch();
   }while(op_edit<'0' && op_edit>'7');

   mov_escolhido--;

   switch(op_edit){

     case'1':do{
                printf("\n\nIntroduza o comprimento do 1§ braco. Limite a respeitar:[10 - 200]\n");
                fflush(stdin);
                scanf(" %f",&mat_movimentos[0][mov_escolhido]);
                }while(mat_movimentos[0][mov_escolhido]<10 || mat_movimentos[0][mov_escolhido]>200);
                break;

     case'2':do{
                printf("\n\nIntroduza o comprimento do 2§ braco. Limite a respeitar:[10 - 200]\n");
                fflush(stdin);
                scanf(" %f",&mat_movimentos[1][mov_escolhido]);
                }while(mat_movimentos[1][mov_escolhido]<10 || mat_movimentos[1][mov_escolhido]>200);
                break;

    case'3':do{
                printf("\n\nIntroduza o valor de abertura da pinca. Limite a respeitar:[0 - 1]\n");
                fflush(stdin);
                scanf(" %f",&mat_movimentos[2][mov_escolhido]);
                }while(mat_movimentos[2][mov_escolhido]<0 || mat_movimentos[2][mov_escolhido]>1);
                break;

    case'4':do{
                printf("\n\nIntroduza o valor de rotacao do eixo do 1§ braco(em radianos). Limite a respeitar:[0 - 2pi]\n");
                fflush(stdin);
                scanf(" %f",&mat_movimentos[3][mov_escolhido]);
                }while(mat_movimentos[3][mov_escolhido]<0 || mat_movimentos[3][mov_escolhido]>6.28);
                break;

    case'5':do{
                printf("\n\nIntroduza o valor de rotacao do eixo do 2§ braco (em radianos). Limite a respeitar:[0 - 2pi]\n");
                fflush(stdin);
                scanf(" %f",&mat_movimentos[4][mov_escolhido]);
                }while(mat_movimentos[4][mov_escolhido]<0 || mat_movimentos[4][mov_escolhido]>6.28);
                break;

    case'6':do{
                printf("\n\nIntroduza o valor de rotacao do eixo da pinca (em radianos). Limite a respeitar:[0 - 2pi]\n");
                fflush(stdin);
                scanf(" %f",&mat_movimentos[5][mov_escolhido]);
                }while(mat_movimentos[5][mov_escolhido]<0 || mat_movimentos[5][mov_escolhido]>6.28);
                break;

    case'7':do{
                printf("\n\nIntroduza o tempo antes de fazer o movimento seguinte (em ms). Limite a respeitar:[0 - infinito[\n");
                fflush(stdin);
                scanf(" %f",&mat_movimentos[6][mov_escolhido]);
                }while(mat_movimentos[6][mov_escolhido]<0);
                break;
   }


   fp=fopen(nome,"w");


   for(j=0;j<=conta_mov;j++){

     fprintf(fp,"\t\t\n[%i]\n",j+1);//coloca no ficheiro o numero de movimento que esta a ser gravado

     for(i=0;i<7;i++){

      fprintf(fp,"%.3f\n",mat_movimentos[j]);//grava os valores no ficheiro global
     }
     for(k=0;k<30;k++){

       fprintf(fp,"*");//cria uma barra de * para dividir os movimentos
     }
   }

    fprintf(fp,"%d-%d-%d", d.da_year,d.da_mon,d.da_day);//grava o ano, mes e dia no ficheiro

    fprintf(fp,"\t%2d:%02d:%02d.%02d\n",t.ti_hour,t.ti_min,t.ti_sec,t.ti_hund);//grava a hora no ficheiro

   fclose(fp);

}//Fim da função



//////////////////////////////////////////////
//Função gravar dados para o robot//
////////////////////////////////////////////
void grava_dados_cmdrobot(MOV movimento)
{

 FILE *fp;

 fp=fopen(NOME_FICH,"w");//abre ficheiro para escrita

   if(fp!=NULL){

     fprintf(fp,"%.3f\n%.3f\n%.3f\n%.3f\n%.3f\n%.3f\n%d",movimento.cb_1,
                                                         movimento.cb_2,
                                                         movimento.ap,
                                                         movimento.re_1b,
                                                         movimento.re_2b,
                                                         movimento.re_p,
                                                         movimento.temp);//guarda  os parametros para o movimento
 fclose(fp);
 }

   else{

     printf("\nErro na abertuta do Ficheiro para Escrita!");

   }
}//Fim da função



///////////////////////////////////////
//Função Temporizador em ms//
/////////////////////////////////////
void temporizador(int *msegundos)
{
   clock_t goal = *msegundos + clock();
   while (goal > clock());

}//Fim da função



////////////////////////////
//função buscar data//
//////////////////////////
void data(void)
{

  getdate(&d);

  printf("\n\tAno: %d\n", d.da_year);//printa o ano no ecrã
  printf("\n\tMes: %d\n", d.da_mon);//printa o mes no ecrã
  printf("\n\tDia: %d\n", d.da_day);//printa o dia no ecrã


}//Fim da função



/////////////////////////////
//Função buscar hora //
////////////////////////////
void hora(void)
{

  gettime(&t);

  printf("\n\tHora: %2d:%02d:%02d.%02d\n",t.ti_hour,
                                          t.ti_min,
                                          t.ti_sec,
                                          t.ti_hund);//printa a hora no ecrã

    getch();

}//Fim

e neste momento estou numa faze em ke keria no sub menu "movimento manual" e na opção de "guardar movimento" e "editar movimento" (isto no ficheiro) eu na sei como fazer isso esse é o meu problema neste momento... se me puderem dar aki uma ajuda (umas dicas), era 5*****... caso na tenham percebido a minha duvi e so dizer ke eu tento-me explicar melhor... cumps

FIM

Devias ter usado o
 (que eu saiba ele preserva os espaços/tabs). É que eu não consigo ler código que não esteja identado ...

Melhor que ter usado a tag [code] para ser mais fácil ainda ler o teu código (que pelos vistos é bastante grande) usa as tags [syntax="linguagem de programação a utilizar]código[/syntax]....

Pode ser que assim seja mais fácil de ler e alguem te ajude....edita lá isso...

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
e neste momento estou numa faze em ke keria no sub menu "movimento manual" e na opção de "guardar movimento" e "editar movimento" (isto no ficheiro) eu na sei como fazer isso esse é o meu problema neste momento... se me puderem dar aki uma ajuda (umas dicas), era 5*****... caso na tenham percebido a minha duvi e so dizer ke eu tento-me explicar melhor... cumps

Tenta explicar melhor sff pk eu n percebi o que queres ...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

realmente o code ta intragavel.... 5 mins, ja ligo o mac... :D

EDIT:

Ok, parece-me que o que queres fazer eh pegar na info que ta dentro da funcao do movimento, e mandar para file com a funcar grava :D

tenta assim, na funcao que recolhe os movimentos, no fim (isto a titulo experimental, tenho de estudar matematica e n tou com grande tempo) metes tipo:

gravar_movimento(movimento.cb_1, movimento.cb_2 <etc etc> );

e na tua funcao:

void gravar_movimento(float movimento.cb_1, float movimento.cb_2, <etc etc > )
{
    FILE *f;
    f = fopen(movimentos,"+w");
    fprintf(movimentos,"%f", movimento.cb_1);
    fprintf(movimentos,"%f", movimento.cb_2);
    ....
    ....

    fclose(movimentos);
}
[/syntax]

sou sincero, nao sei se isto funciona... nao tenho tempo neste momento para testar...
Infelizmente vejo que usas windows ( tens ali um system(cls); ) senao fazias em linux man fprintf 

Boa sorte 

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

bem desde ja mt obrigado por me terem orientado o codigo, tb so vi agora e na altura na sabia como e ke punha akilo tudo no sitio certo.

A ideia era gravar para um ficheiro os valores recolhidos na função dos movimentos... e tb numa outra função fazer conke o utilizador pudesse editar esse ficheiro, so na sei se meto as perguntas todas outra vez ou se pergunto kual o movimento ke deseja alterar uma vez ke o ficheiro ira ter mais ke um movimento la dentro, a ideia e gravar varios movimentos no mxm ficheiro uns por baixo dos outro, com data e hora para cada movimento...

vou entao experimentar a ideia do redhat..mas acho ke ainda na deve ser mt bem assim... mas vou ver como fica obrigado a todos desde ja...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu editei o 1º post ke contem o codigo pq fiz alerações nele, e neste momento esta assim. agora o ke se passa é ja abre o ficheiro no disco e tal com a directoria escolhida pelo utilizador mas, nao esta a gravar a informação la dentro na sei pq, se alguem puder dar uma olhadela no codigo e ver se encontra algum erro, que esteja a impedir o programa de gravar no ficheiro era optimo...

cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bem era so para dizer ke este topic come a deixar de ser um topic de "pedir ajuda" mas sim para ajudar, lol

Eu felizmente ja tou a dar a volta ao bicho e ja ta a rular +/-, pelo menos onde eu tinha mais dificuldades. Ao fim de algumas horas perdidas a pensar e a investigar la consegui fazer kk coisa.. kuando estiver mxm acabado posto o prog todo... hehe  B)  :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

E pronto ai esta prog terminado, finalmente hehe... tenho a cabeça oda keimada lol, so a pensar cmo fazer isto e akilo. mas acho ke ficou fixe... cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
E pronto ai esta prog terminado, finalmente hehe... tenho a cabeça toda keimada lol, so a pensar cmo fazer isto e akilo. mas acho ke ficou fixe... cumps

Estive a ver e nada a apontar para já...

Parabens!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora