Hallo allemaal,
Ben hier net nieuw
, maar had een vraagje.....
Voor school ben ik bezig met programmeren en nou moet ik in een binair bestand zoeken naar een bepaald woord in dat bestand. Dit moet met zogenaamde strings
. Het programma heb ik hieronder ook neergezet. Het zoeken met op woord is me tot nu toe alleen nog niet gelukt
. De rest werkt gelukkig wel
.Heeft iemand van jullie een ideetje???
Alvast bedankt!
Ben hier net nieuw
Voor school ben ik bezig met programmeren en nou moet ik in een binair bestand zoeken naar een bepaald woord in dat bestand. Dit moet met zogenaamde strings
Alvast bedankt!
C:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
| #include <stdio.h> #include <conio.h> #include <string.h> struct datagegevens { int artikelnr; char omschrijving[20]; char eenheid[10]; int voorraad; }; int maakkeuze(void); void drukaf(FILE *); void zoekartikelnr(FILE *); void zoekomschr(FILE *); main() { FILE *PNF; int keuze; printf("Welkom bij dit programma. \n\nU kunt hier gegevens van het bestand 'sop1voorraad.dat' lezen en verwijderen."); if ((PNF = fopen("sop1voorraad.dat", "rb+")) == NULL) { printf("Het bestand kan niet geopend worden."); } rewind(PNF); printf("\nHet bestand is geopend. \n\nU kunt nu op nummer en omschrijving zoeken of het bestand laten afdrukken."); while ((keuze = maakkeuze()) !=4) { switch (keuze) { case 1: drukaf(PNF); break; case 2: zoekartikelnr(PNF); break; case 3: zoekomschr(PNF); break; } } fclose(PNF); getch(); return 0; } int maakkeuze(void) { int menukeuze; printf("\n\nGeef uw keuze: \n\n" "1 Druk het bestand af\n" "2 Zoek op artikelnummer\n" "3 Zoek op omschrijving\n" "4 Stoppen\n\n"); scanf("%d", &menukeuze); return menukeuze; } void drukaf (FILE *PNF) { struct datagegevens artikel; rewind(PNF); printf("\n\nArtikelnummer\t Omschrijving\t\tEenheid\t\t Voorraad\n\n"); while (!feof(PNF)) { fread(&artikel, sizeof(struct datagegevens), 1, PNF); if (strcmp(artikel.omschrijving, "") != 0) { printf("%-3d\t\t %-22s %-12s\t %-3d\n", artikel.artikelnr, artikel.omschrijving, artikel.eenheid, artikel.voorraad); } } } void zoekartikelnr(FILE *PNF) { struct datagegevens artikel; struct datagegevens verwijderen = { 0, "", "", 0}; int zoekgetal, x; rewind(PNF); printf("\n\nGeef het artikelnummer dat u wilt zoeken.\n\n"); scanf("%d", &zoekgetal); fseek (PNF, (zoekgetal-1) *sizeof(struct datagegevens), SEEK_SET); fread(&artikel, sizeof(struct datagegevens), 1, PNF); if (strcmp(artikel.omschrijving, "") !=0) { printf("\n\nArtikelnummer\t: \t%d" "\nOmschrijving\t: \t%s" "\nEenheid\t\t: \t%s" "\nVoorraad\t: \t%d\n\n" , artikel.artikelnr, artikel.omschrijving, artikel.eenheid, artikel.voorraad); printf("Weet u zeker dat u dit artikel wilt verwijderen, toets 1. Druk anders op toets 2.\n\n"); scanf("%d", &x); if (x==1) { fseek (PNF, (zoekgetal-1) *sizeof(struct datagegevens), SEEK_SET); fwrite(&verwijderen, sizeof(struct datagegevens), 1, PNF); } } } void zoekomschr(FILE *PNF) { struct datagegevens artikel; struct datagegevens verwijderen = { 0, "", "", 0}; char omschrijving[20]; int x; rewind(PNF); printf("\nGeef het woord dat u wilt zoeken.\n\n"); scanf("%s", &omschrijving); while (strcmp(artikel.omschrijving, "omschrijving")!= 0) { fread(&artikel, sizeof(struct datagegevens), 1, PNF); printf("\n\nArtikelnummer: %d" "\nOmschrijving : %s" "\nEenheid : %s" "\nVoorraad : %d\n\n" , artikel.artikelnr, artikel.omschrijving, artikel.eenheid, artikel.voorraad); printf("Weet u zeker dat u dit artikel wilt verwijderen, toets 1. Druk anders op toets 2.\n\n"); scanf("%d", &x); if (x==1) { while (strcmp(artikel.omschrijving, "omschrijving")!= NULL) { fread(&artikel, sizeof(struct datagegevens), 1, PNF); fwrite(&verwijderen, sizeof(struct datagegevens), 1, PNF); } } } } |
[ Voor 8% gewijzigd door D2k op 23-12-2002 13:34 ]