Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Pedido atrasado e urgente... linguagem C
#2
Alexandre, correndo o risco de estares a falar de alhos e eu a responder bogalhos Smile, aqui vai :

O conjunto

typedef struct {
int points; /* numero de pontos obtidos */
char player[8]; /* pacman, inky, blinky, pinky or clyde */
time_t sta_time; /* data/hora da entrada no jogo */
time_t end_time; /* data/hora da saida do jogo */
uid_t user; /* identificador do utilizador que jogou */
char logname[16]; /* nome do utilizador que jogou */
} pacman_record_t;

define um novo tipo que passa a poder ser utilizado como outro tipo "interno" ao C.
Isto é, da mesma forma que quando escreves :

int i_numero_inteiro;
Estás a declarar a variável i_numero_inteiro como sendo do tipo int, passas a poder declarar algo do género :

pacman_record_t v_registo_record;
Desta forma declaras a variável v_registo_record, como sendo do tipo pacman_record_t.

Depois de declarares essa variável, podes usá-la exactamente da mesma forma que qualquer outra, identificando o nome da variável seguido de "." (ou "->" no caso de ser um apontador) seguido do campo interno da estrutura, tipo :

v_registo_record.points=100;

ou

strcpy(v_registo_record.player, "blinky");


A escrita em ficheiro binário segue a forma :

fwrite(&v_registo_record,sizeof(v_registo_record),1, fp )
Parâmetros :
- Apontador para "o que" queres gravar
- Tamanho unitário do que queres gravar
- n vezes o tamanho do parâmetro anterior (Na práctica cada registo em ficheiro fica com o tamanho Parâmetro 2 * Parâmetro 3)
- Apontador para o ficheiro onde queres escrever

em que fp é um FILE *, previamente definido e que "sofreu" a atribuição dada por um fopen()

É claro que o exemplo está descrito para um único registo, mas o princípio é o mesmo para n registos.
A forma mais simples de usar a variável para n registos seria definir, por exemplo :

pacman_record_t v_registo_record[100];

Desta forma definirias um array com 100 registos, o inconveniente é que tens que saber o limite máximo que nem sempre é conhecido. Outra forma seria criar dinamicamente cada elemento do "array" com apontadores e respectiva alocação de memória, mas isso é outro filme Smile

Se não era nada disto que querias saber, deculpa lá o tempo que te tomei Wink
Reply


Messages In This Thread
RE: Pedido atrasado e urgente... linguagem C - by RicGom - 31-05-2009, 12:37 AM

Possibly Related Threads…
Thread Author Replies Views Last Post
  Pedido Ajuda para comprar computador Novo Mario Esteves 4 4.233 13-03-2009, 06:09 PM
Last Post: Duarte Vieira
  problems com pc AJUDA URGENTE okki 9 4.069 02-01-2007, 12:37 PM
Last Post: _ratax

Forum Jump:


Users browsing this thread: 1 Guest(s)