Back to Contents        Previous        Next



Comments and limitations



The most important point is that !CSvamp uses the first record of an input CSV/TSV file as the defining record for the whole file. So you need to examine the first record and ensure that it is representative of the other records - and in this respect it is good practice to use the first record to show field names.
(In particular, do not unwittingly leave the first line of an input file blank - otherwise !CSvamp will take this as a genuine record with one field, happening to contain a null string, and regard your file accordingly.)

!CSvamp never alters an input file i.e. all processing options lead to a new saved output file.

As supplied, and as shown in the first screen-shot in this Manual, !CSvamp allows CSV files with up to 1000 records and up to 20 fields-per-record (in the first record, remember!).
These limits are set in the !Run file using the system variables
CSVamp$MaxRecords
and
CSVamp$MaxFieldsPerRecord
respectively - which may be changed by the user if required. There is normally no significant penalty in changing either of these values and files exceeding 20,000 records have been tested. However, the number of fields-per-record does impact on the maximum number of rows of icons needed in the main window and a very large value could exceed the (very generous) allowance made for icon definition space in the application initialisation routine. If an error occurs when loading such a file please contact the author.

As most of the processing time involves extraction of items from a CSV file and compilation of a new CSV file, considerable time saving can be made by dragging a source file from a RAM disc and saving the output there also. This is particularly worthwhile for large files and sorting.

!CSvamp will cope with records which have less or more fields than the defining first record. In the main window display, records with less fields will appear with the missing fields empty. Records with more fields will have the extra fields ignored - and, of course, there will not be enough field rows on the display to show them.
The earlier descriptions of the processes for manipulating an input file contain details about what specifically happens in the output file when records with more or less fields than the first record are encountered - and it should be noted that what happens is not the same for all processes.

It is believed that !CSvamp will cope with the vast majority of CSV/TSV files - but it is possible to fool it with an input-file which uses commas and/or double-quotes in certain combinations as part of a field’s contents - rather than as, respectively, a field separator and field ‘surrounder’.
(The problem may not be obvious on initial loading but may cause an error later on in the processing.)
Using double-quotes to surround fields overcomes most of such problems - but it is not completely foolproof. If commas are to be used as content it is best to use a TSV format.
Please let me know if you find a CSV/TSV file that !CSvamp doesn’t like.

Keeping the main window to a reasonable width means that there are only two grey ‘Join to’ icons per row. However, if this is not enough simply use the output file as a new input file to make more ‘Join to’ actions as desired. But remember the field length limitation below.

The maximum number of characters of text that can be entered into the white writable icons is 32. This is an arbitrary size but is consistent with the limit of 255 characters in any one field (see below). If you want to add longer text then, again, simply repeat the process in smaller bites, as necessary.

RISCOS (and BBC Basic) limits a string to 255 characters - and for !CSvamp this means that no individual
field
must exceed 255 characters (including any surrounding quotes). You may need to watch this if you are attempting multiple concatenations. The application warns you if it thinks this is going to happen.

Please note that it is possible to produce a successful output-file with commas/double-quotes as content material and then find that this file fools !CSvamp if you load it subsequently as an input-file.




Top of page        Back to Contents        Previous        Next