'Feature Class to Coverage' tool and the SHAPEARC command generate errors when converting shapefiles with a large number of text fields.
ArcInfo stores information that quantifies and describes geographic features in attribute tables. Feature attribute tables are in INFO file format which applies the limit of 4096 bytes per table.
The following example shapefile consists of seventeen text fields (254 bytes each), two date fields (8 bytes each), and four ‘type Double’ fields.
The computation of text and date fields is as follows:
17 (text fields) x 245 (bytes) = 4318
2 (Date fields) x 8 (bytes) = 16
The total of 4334 bytes exceeds the maximum of 4096 bytes, so this dataset cannot be converted successfully to an ArcInfo coverage.
Additionally any ArcInfo coverage attribute table (cover.AAT, cover.PAT, cover.NAT) needs a certain number of bytes reserved for standard items. In this case, shapefile is first converted to a region coverage. In the Region Attribute Table, ArcInfo needs 24 bytes for the storage of standard items as in this example table:
In this case, conversion tools fail because the input shapefile fields byte count exceeds the 4096 byte limit for ArcInfo coverage items. Spatial features are not converted; however, the coverage attribute table is created prior to the tool failure, and it can be used to figure out which or how many fields need to be removed to convert this data successfully.
The table contains the current field from the shapefile, which fits within the limit of 4096 bytes. So, for example, the last field successfully converted into the cover.PAT might take up to 3867 bytes. There would be 229 bytes remaining (4096 - 3867), so if the next field in the shapefile is another text field (254 bytes), the tool fails because it does not have enough space to fit more fields of such length.
To calculate this, use the number under ‘COLUMN’ next to the LastConvertedField - this indicates at which byte the given item starts, then add its length (the value under WIDTH column).
This is where the next item begins, and this is also the number that needs to be subtracted from 4096 to find out how many more bytes are left in this table.