From f8e84b58710008593ab5a864b6496db0c13b7078 Mon Sep 17 00:00:00 2001 From: Ansgar Becker Date: Tue, 14 Jul 2015 09:48:14 +0000 Subject: [PATCH] Text import: Use very last value from last row, even if it's not followed by a field or line terminator. See http://www.heidisql.com/forum.php?t=18899#p18911 --- source/loaddata.pas | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/source/loaddata.pas b/source/loaddata.pas index d4ff9ec0..81ecfc49 100644 --- a/source/loaddata.pas +++ b/source/loaddata.pas @@ -440,7 +440,7 @@ var Contents: String; EnclTest, TermTest, LineTermTest: String; Value, SQL: String; - IsEncl, IsTerm, IsLineTerm: Boolean; + IsEncl, IsTerm, IsLineTerm, IsEof: Boolean; InEncl: Boolean; OutStream: TMemoryStream; @@ -574,14 +574,17 @@ begin IsEncl := TestLeftChars(EnclTest, Encl, EnclLen); IsTerm := TestLeftChars(TermTest, Term, TermLen); IsLineTerm := TestLeftChars(LineTermTest, LineTerm, LineTermLen) and (ValueCount >= ColumnCount-1); + IsEof := P = ContentLen; Value := Value + Contents[P]; if IsEncl then InEncl := not InEncl; - if not InEncl then begin - if IsTerm then begin + if IsEof or (not InEncl) then begin + if IsEof then begin + AddValue; + end else if IsTerm then begin SetLength(Value, Length(Value)-TermLen); AddValue; end else if IsLineTerm then begin