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

This commit is contained in:
Ansgar Becker
2015-07-14 09:48:14 +00:00
parent 2c75fa294e
commit f8e84b5871

View File

@ -440,7 +440,7 @@ var
Contents: String; Contents: String;
EnclTest, TermTest, LineTermTest: String; EnclTest, TermTest, LineTermTest: String;
Value, SQL: String; Value, SQL: String;
IsEncl, IsTerm, IsLineTerm: Boolean; IsEncl, IsTerm, IsLineTerm, IsEof: Boolean;
InEncl: Boolean; InEncl: Boolean;
OutStream: TMemoryStream; OutStream: TMemoryStream;
@ -574,14 +574,17 @@ begin
IsEncl := TestLeftChars(EnclTest, Encl, EnclLen); IsEncl := TestLeftChars(EnclTest, Encl, EnclLen);
IsTerm := TestLeftChars(TermTest, Term, TermLen); IsTerm := TestLeftChars(TermTest, Term, TermLen);
IsLineTerm := TestLeftChars(LineTermTest, LineTerm, LineTermLen) and (ValueCount >= ColumnCount-1); IsLineTerm := TestLeftChars(LineTermTest, LineTerm, LineTermLen) and (ValueCount >= ColumnCount-1);
IsEof := P = ContentLen;
Value := Value + Contents[P]; Value := Value + Contents[P];
if IsEncl then if IsEncl then
InEncl := not InEncl; InEncl := not InEncl;
if not InEncl then begin if IsEof or (not InEncl) then begin
if IsTerm then begin if IsEof then begin
AddValue;
end else if IsTerm then begin
SetLength(Value, Length(Value)-TermLen); SetLength(Value, Length(Value)-TermLen);
AddValue; AddValue;
end else if IsLineTerm then begin end else if IsLineTerm then begin