View Issue Details

IDProjectCategoryView StatusLast Update
0004742JEDI VCL00 JVCL Componentspublic2009-04-15 21:23
ReportersachseAssigned ToAHUser 
PrioritynormalSeveritymajorReproducibilityalways
Status resolvedResolutionfixed 
PlatformindependentOSindependentOS Versionindependent
Product Version3.36 
Target VersionFixed in Version3.37 
Summary0004742: "JvCsvData - Internal Limit of MAXCOLUMNS (120) reached. CSV Data has too many columns."
DescriptionThe testfile has 78 columns and 1300 lines (records).
The problem occurs because JvCsvData expect <CR> as record delimiter.
But the file contains only <LF> as delimiter usually in Unix/Linux.
Steps To ReproduceUse a file which is cols x rows > 120 an contains only <LF>
TagsNo tags attached.

Activities

sachse

2009-04-12 19:42

reporter   ~0015406

Following fix works for me:

JvCsvData.pas:1209
----------------- snip ---------------
{
        if CrFlag and LfFlag and not QuoteFlag then
          Break;
}
        //CR+LF OR LF
        if (((CrFlag AND LfFlag)OR LfFlag) and (not QuoteFlag)) then Break;
----------------- snip ---------------

AHUser

2009-04-13 09:39

developer   ~0015408

With boolean arithmetic you get:

if (((CrFlag AND LfFlag)OR LfFlag)... => if LfFlag and not QuoteFlag

AHUser

2009-04-15 21:23

developer   ~0015421

Fixed in SVN.
The ReadLine method now accepts all three: CR, LF, CRLF. And it now does not include the line break char in the result string where it was cut but the called anyway.

Issue History

Date Modified Username Field Change
2009-04-12 19:39 sachse New Issue
2009-04-12 19:42 sachse Note Added: 0015406
2009-04-13 09:39 AHUser Note Added: 0015408
2009-04-15 21:23 AHUser Note Added: 0015421
2009-04-15 21:23 AHUser Status new => resolved
2009-04-15 21:23 AHUser Fixed in Version => Daily / SVN
2009-04-15 21:23 AHUser Resolution open => fixed
2009-04-15 21:23 AHUser Assigned To => AHUser