Tiago Correia
Membro
Ola a todos
Tou a guardar varias listas num ficheiro .dat. Através da função fread, leio todas as listas que criei. contudo, só consigo ler todas as listas uma vez e depois para ler as listas de novo tenho que fechar o ficheiro e abri-lo de novo. Eu queria continuar a ler listas sem ter de estar de realizar este processo. Portanto, quando leio as listas todas, tenho de voltar a posicionar-me de novo no inicio das listas. Eu penso que a função para isso é rewind(*f). Aqui, após ler as listas todas, qdo tento ler a segunda vez aparece-me um erro: "Debug Assertion Failed!...Expression: (_osfile(fh) & FOPEN)". a função que eu realizei para ler as listas é:
O que tenho de fazer para ler as listas como pretendo?
Obrigado pela ajuda
Tou a guardar varias listas num ficheiro .dat. Através da função fread, leio todas as listas que criei. contudo, só consigo ler todas as listas uma vez e depois para ler as listas de novo tenho que fechar o ficheiro e abri-lo de novo. Eu queria continuar a ler listas sem ter de estar de realizar este processo. Portanto, quando leio as listas todas, tenho de voltar a posicionar-me de novo no inicio das listas. Eu penso que a função para isso é rewind(*f). Aqui, após ler as listas todas, qdo tento ler a segunda vez aparece-me um erro: "Debug Assertion Failed!...Expression: (_osfile(fh) & FOPEN)". a função que eu realizei para ler as listas é:
Código:
[SIZE=2][COLOR=#0000ff]
[SIZE=2][COLOR=#0000ff]void[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#000000] listar(FILE *g)[/COLOR][/SIZE]
[SIZE=2]{[/SIZE]
[SIZE=2]system([/SIZE][SIZE=2][COLOR=#800000][SIZE=2][COLOR=#800000]"cls"[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]);[/SIZE]
[SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]struct[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] Listas lis;[/SIZE]
[SIZE=2]fflush(stdin);[/SIZE]
[SIZE=2]printf([/SIZE][SIZE=2][COLOR=#800000][SIZE=2][COLOR=#800000]"\nListar : "[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]);[/SIZE]
[SIZE=2]rewind(g);[/SIZE]
[SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]while[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] (fread(&lis,tamanhoLis,1,g)!=0)[/SIZE]
[SIZE=2]{ [/SIZE]
[SIZE=2]apres_dados(lis);[/SIZE]
[SIZE=2]printf([/SIZE][SIZE=2][COLOR=#800000][SIZE=2][COLOR=#800000]"\n\nQualquer tecla para prosseguir\n"[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]);[/SIZE]
[SIZE=2]getch();[/SIZE]
[SIZE=2]} [/SIZE]
[SIZE=2]system([/SIZE][SIZE=2][COLOR=#800000][SIZE=2][COLOR=#800000]"cls"[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]);[/SIZE]
[SIZE=2]}[/SIZE]
O que tenho de fazer para ler as listas como pretendo?
Obrigado pela ajuda