Ik wil in mijn programma op het moment dat er blijkt dat de voorraad onder de minimum gestelde voorraad komt dat dit wordt weggeschreven in een txt bestand. Dit heb ik voor elkaar echter hij vult het bestand aan met "jibberisch" ter groote van de opgeven buffer gevolgd door de te schrijven info.
Dus wat onderstaande code moet doen is, het volgende wegschrijven in bestellen.txt
22/04/04 11:52:38 1311 XFX Geforce4 Ti42008X 64mb DDR +TV-out 2
wat het echter doet is dit
ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ22/04/04 11:52:38 1311 XFX Geforce4 Ti42008X 64mb DDR +TV-out 2
Het vreemde is dat ik onderstaande code al eerder eens heb toegepast in een ander programma, waar dit probleem niet eens in voorkwam. Het enige verschil ertussen is een aangepaste benaming in de code.
Heeft er hier iemand een idee wat ik fout doe of waarom het niet werkt, want ik ben het nu even kwijt.
Dus wat onderstaande code moet doen is, het volgende wegschrijven in bestellen.txt
22/04/04 11:52:38 1311 XFX Geforce4 Ti42008X 64mb DDR +TV-out 2
wat het echter doet is dit
ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ22/04/04 11:52:38 1311 XFX Geforce4 Ti42008X 64mb DDR +TV-out 2
Het vreemde is dat ik onderstaande code al eerder eens heb toegepast in een ander programma, waar dit probleem niet eens in voorkwam. Het enige verschil ertussen is een aangepaste benaming in de code.
C++:
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
| // Vrije voorraad berekenen void CSQLVoorraadView::OnBnClickedButton1() { int Aantal,Totaal; Aantal = GetDlgItemInt(IDC_Aantal); Totaal = GetDlgItemInt(IDC_Totaalverkocht); Vrijevoorraad.Format("%d", Aantal-Totaal); SetDlgItemText(IDC_EDIT2,Vrijevoorraad); // Minimum voorraad controle { GetDlgItemText(IDC_Artikelcode, Artikelcode); GetDlgItemText(IDC_Omschrijving, Omschrijving); GetDlgItemText(IDC_MinimumVoorraad,Minimum); GetDlgItemText(IDC_EDIT2,VrijeVoorraad); if(Vrijevoorraad <= Minimum) { AfxMessageBox("voorraad is onder minimum"); //Bestellijst maken //bestand openen HANDLE hFile; DWORD dwNumRead; BOOL bTest; char dwBuffer[12560]; CString tijd; CString buf; hFile = CreateFile("e:\\bestellen.txt", GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); bTest = ReadFile(hFile,dwBuffer,sizeof(dwBuffer),&dwNumRead,NULL); buf=dwBuffer; CloseHandle(hFile); CTime DeTijd = CTime::GetCurrentTime(); tijd = DeTijd.Format( "%d/%m/%y %X" ); CString B1=Artikelcode; CString B2=Omschrijving; CString B3=Minimum; //Bestand indelen buf+=tijd; buf+="\t"; //tab invoegen buf+=B1; buf+="\t"; //tab invoegen buf+=B2; buf+="\t"; //tab invoegen buf+=B3; buf+="\r\n"; //enter, nieuwe regel //opslaan CString Save; Save=buf; HANDLE hSaveFile; DWORD dwNumRead2; int bTest2; hSaveFile = CreateFile("e:\\bestellen.txt", GENERIC_WRITE, FILE_SHARE_WRITE, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); bTest2 = WriteFile(hSaveFile,Save,Save.GetLength(),&dwNumRead2,NULL); CloseHandle(hSaveFile); } else { AfxMessageBox("voorraad is boven minimum"); } } |
Heeft er hier iemand een idee wat ik fout doe of waarom het niet werkt, want ik ben het nu even kwijt.
Het probleem is gelokaliseerd, het bevindt zich tussen het keyboard en de rugleuning.