1565{
1566 DBFHandle newDBF;
1567
1568 newDBF =
DBFCreateEx(pszFilename, psDBF->pszCodePage);
1569 if (newDBF == NULL)
1570 return (NULL);
1571
1572 newDBF->nFields = psDBF->nFields;
1573 newDBF->nRecordLength = psDBF->nRecordLength;
1574 newDBF->nHeaderLength = psDBF->nHeaderLength;
1575
1576 newDBF->pszHeader = (
char *)
malloc(newDBF->nHeaderLength);
1577 memcpy(newDBF->pszHeader, psDBF->pszHeader, newDBF->nHeaderLength);
1578
1579 newDBF->panFieldOffset = (
int *)
malloc(
sizeof(
int) * psDBF->nFields);
1580 memcpy(newDBF->panFieldOffset, psDBF->panFieldOffset, sizeof(int) * psDBF->nFields);
1581 newDBF->panFieldSize = (
int *)
malloc(
sizeof(
int) * psDBF->nFields);
1582 memcpy(newDBF->panFieldSize, psDBF->panFieldSize, sizeof(int) * psDBF->nFields);
1583 newDBF->panFieldDecimals = (
int *)
malloc(
sizeof(
int) * psDBF->nFields);
1584 memcpy(newDBF->panFieldDecimals, psDBF->panFieldDecimals, sizeof(int) * psDBF->nFields);
1585 newDBF->pachFieldType = (
char *)
malloc(
sizeof(
char) * psDBF->nFields);
1586 memcpy(newDBF->pachFieldType, psDBF->pachFieldType, sizeof(char) * psDBF->nFields);
1587
1588 newDBF->bNoHeader =
TRUE;
1589 newDBF->bUpdated =
TRUE;
1590
1593
1594 newDBF =
DBFOpen(pszFilename,
"rb+");
1595
1596 return (newDBF);
1597}
DBFHandle SHPAPI_CALL DBFOpen(const char *pszFilename, const char *pszAccess)
DBFHandle SHPAPI_CALL DBFCreateEx(const char *pszFilename, const char *pszCodePage)
void SHPAPI_CALL DBFClose(DBFHandle psDBF)
static void DBFWriteHeader(DBFHandle psDBF)