199{
201 int i;
202
203 if (!psDBF->bNoHeader)
204 return;
205
206 psDBF->bNoHeader =
FALSE;
207
208
209
210
212 abyHeader[i] = 0;
213
214 abyHeader[0] = 0x03;
215
216
217 abyHeader[1] = 95;
218 abyHeader[2] = 7;
219 abyHeader[3] = 26;
220
221
222
223 abyHeader[8] = (unsigned char)(psDBF->nHeaderLength % 256);
224 abyHeader[9] = (unsigned char)(psDBF->nHeaderLength / 256);
225
226 abyHeader[10] = (unsigned char)(psDBF->nRecordLength % 256);
227 abyHeader[11] = (unsigned char)(psDBF->nRecordLength / 256);
228
229 abyHeader[29] = (unsigned char)(psDBF->iLanguageDriver);
230
231
232
233
234
235 psDBF->sHooks.FSeek(psDBF->fp, 0, 0);
237 psDBF->sHooks.FWrite(psDBF->pszHeader,
XBASE_FLDHDR_SZ, psDBF->nFields, psDBF->fp);
238
239
240
241
242 if (psDBF->nHeaderLength > 32 * psDBF->nFields + 32)
243 {
244 char cNewline;
245
246 cNewline = 0x0d;
247 psDBF->sHooks.FWrite(&cNewline, 1, 1, psDBF->fp);
248 }
249}