Skip to main content

Hi,

I have multiple CSV files exported by the same application in one export session and with the same delimiter. The CSV reader does recognize delimiter automatically for all but one file. Even when I enter the delimiter at the reader "delimiter character" it is not recognized. I'm wondering what might be different with that file.

I noticed all files have UTF-8 encoding but not the one in question. When I convert to UTF-8 (Notepad++) it still doesnt work. I have no idea which other file properties cause that the file being treated differently. I also copied the delimiter character from the CSV file and pasted it to the readers "delimiter character" - still the same.

Any ideas what the reason could be?

FME 2019.

 

Many thanks, Rob

Have you tried changing the encoding in the reader parameters to UTF-8? CSVs don't have a property that describes the encoding so often it's just a guess and sometimes it's wrong.


@ebygomm​ 

Many thanks - that didnt help. I looked closer what messages appear in the log window and I saw this:

 

CSV reader: Detected excess data and/or delimiters in addition to the defined schema in line 2 with value '0|Einmaliges Ereignis o. Laufz.' read from file ... Excess data will not be read. This can occur if the file is not uniform in the number of fields per row or if fields have been intentionally removed from the source feature type. In order to read the excess data, recreate the source feature type and set a larger value for the 'Maximum Rows to Scan' option to scan additional rows for fields. If the file contains field names, ensure that the field names line represents all of the columns in data rows, or enable the 'Scan for Additional Fields' option. This may also be caused by a misplaced field qualifier character. In this case, ensure that field qualifiers in the row are correct, or consider changing the Field Qualifier Character value

 

 

Now - the file in question is different than all the other files I read as it contains spaces and dots which are part of the text and not a delimiter. Other files only contain spaces.

I tried different reader options - no change. I replaced spaces with underscores - it worked but only once, couldnt reproduce it.

I think either there is something not quite right with the CSV reader or I have a misunderstanding: when I chose the pipe-character as delimiter (as it is the delimiter character in my files) it is not recognized and FME doesnt read the file properly. So at the end I took FME Help advice and read the CSV file through the text file reader....

 

By the way - here is the culprit:

VALUE_CHAR|DESCRIPTION
0|Einmaliges Ereignis o. Laufz.
1|Ablaufdatum fix
2|Bestand Leitung ohne NE
3|Bestand Leitung mit NE
4|Befristet mit auto. Verlänger.
5|Bestand der Leitung (jährlich)

 

 

 

 

 


@ebygomm​ 

Many thanks - that didnt help. I looked closer what messages appear in the log window and I saw this:

 

CSV reader: Detected excess data and/or delimiters in addition to the defined schema in line 2 with value '0|Einmaliges Ereignis o. Laufz.' read from file ... Excess data will not be read. This can occur if the file is not uniform in the number of fields per row or if fields have been intentionally removed from the source feature type. In order to read the excess data, recreate the source feature type and set a larger value for the 'Maximum Rows to Scan' option to scan additional rows for fields. If the file contains field names, ensure that the field names line represents all of the columns in data rows, or enable the 'Scan for Additional Fields' option. This may also be caused by a misplaced field qualifier character. In this case, ensure that field qualifiers in the row are correct, or consider changing the Field Qualifier Character value

 

 

Now - the file in question is different than all the other files I read as it contains spaces and dots which are part of the text and not a delimiter. Other files only contain spaces.

I tried different reader options - no change. I replaced spaces with underscores - it worked but only once, couldnt reproduce it.

I think either there is something not quite right with the CSV reader or I have a misunderstanding: when I chose the pipe-character as delimiter (as it is the delimiter character in my files) it is not recognized and FME doesnt read the file properly. So at the end I took FME Help advice and read the CSV file through the text file reader....

 

By the way - here is the culprit:

VALUE_CHAR|DESCRIPTION
0|Einmaliges Ereignis o. Laufz.
1|Ablaufdatum fix
2|Bestand Leitung ohne NE
3|Bestand Leitung mit NE
4|Befristet mit auto. Verlänger.
5|Bestand der Leitung (jährlich)

 

 

 

 

 

I have had cases where FME has not been able to handle a csv file using auto despite it working correctly on files which have come from the same sort of export. In my cases explicitly setting the delimiter has always solved the issue.

If i save the above as a csv, FME reads it fine for me either in auto or setting the delimiter as pipe. 

Capturespaces, dots etc. not an issue. There could be something non printing in the original csv that would cause an issue which may have got lost when you copied and pasted here.


Reply