Skip to content

Commit 43cae24

Browse files
committed
Improved delimiter guesser
1 parent 63d93f2 commit 43cae24

File tree

2 files changed

+24
-10
lines changed

2 files changed

+24
-10
lines changed

src/Access_version.zip

105 Bytes
Binary file not shown.

src/CSVinterface.cls

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2433,15 +2433,15 @@ Private Function RecordScore(ByRef strArray As Variant) As Double
24332433
Dim CumulativeScore As Double
24342434

24352435
On Error GoTo RecordScore_ErrHandler
2436+
CfieldScore = FieldScore(strArray)
2437+
CumulativeScore = 0
2438+
For L0 = LBound(strArray) To UBound(strArray)
2439+
CumulativeScore = CumulativeScore + (LenB(strArray(L0)) - CfieldScore) ^ 2
2440+
Next L0
24362441
If UBound(strArray) Then
2437-
CfieldScore = FieldScore(strArray)
2438-
CumulativeScore = 0
2439-
For L0 = LBound(strArray) To UBound(strArray)
2440-
CumulativeScore = CumulativeScore + (LenB(strArray(L0)) - CfieldScore) ^ 2
2441-
Next L0
24422442
RecordScore = (CumulativeScore / (UBound(strArray) - LBound(strArray))) ^ 0.5
24432443
Else
2444-
RecordScore = 1E+30
2444+
RecordScore = 10000000000#
24452445
End If
24462446
Exit Function
24472447
RecordScore_ErrHandler:
@@ -3132,13 +3132,27 @@ AdvanceLine:
31323132
End Sub
31333133
Private Function TableScore(ByRef ArrayList As ECPArrayList) As Double
31343134
Dim L0 As Long
3135-
Dim StdDevSUM As Double
3135+
Dim RecScores() As Double
3136+
Dim SumRecScores As Double
3137+
Dim AVGrecScores As Double
3138+
Dim CumulativeTblScore As Double
31363139

3137-
StdDevSUM = 0
3140+
ReDim RecScores(0 To ArrayList.count - 1)
3141+
SumRecScores = 0
3142+
For L0 = 0 To ArrayList.count - 1
3143+
RecScores(L0) = RecordScore(ArrayList(L0))
3144+
SumRecScores = SumRecScores + RecScores(L0)
3145+
Next L0
3146+
AVGrecScores = SumRecScores / ArrayList.count
3147+
CumulativeTblScore = 0
31383148
For L0 = 0 To ArrayList.count - 1
3139-
StdDevSUM = StdDevSUM + RecordScore(ArrayList(L0))
3149+
CumulativeTblScore = CumulativeTblScore + (RecScores(L0) - AVGrecScores) ^ 2
31403150
Next L0
3141-
TableScore = StdDevSUM / ArrayList.count
3151+
If ArrayList.count > 1 Then
3152+
TableScore = (CumulativeTblScore / (ArrayList.count - 1)) ^ 0.5
3153+
Else
3154+
TableScore = (CumulativeTblScore / ArrayList.count) ^ 0.5
3155+
End If
31423156
End Function
31433157
Public Sub TwoDimToJaggedArray(ByRef TwoDimArray() As Variant, ByRef JaggedArray() As Variant)
31443158
Dim UBj1 As Long, LBj1 As Long

0 commit comments

Comments
 (0)