mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-20 14:19:17 +02:00
LCL, arguments rename and parameter SkipEmptyLines in LoadFromCSVxxx function, modified patch from wp, issue #28582
git-svn-id: trunk@49754 -
This commit is contained in:
parent
9a14589341
commit
3a209ed467
@ -1625,12 +1625,14 @@ type
|
||||
procedure Clean(StartCol,StartRow,EndCol,EndRow: integer; CleanOptions: TGridZoneSet); overload;
|
||||
procedure CopyToClipboard(AUseSelection: boolean = false);
|
||||
procedure InsertRowWithValues(Index: Integer; Values: array of String);
|
||||
procedure LoadFromCSVStream(AStream: TStream; ADelimiter: Char=','; WithHeader: boolean=true; SkipLines: Integer=0);
|
||||
procedure LoadFromCSVFile(AFilename: string; ADelimiter: Char=','; WithHeader: boolean=true; SkipLines: Integer=0);
|
||||
procedure SaveToCSVStream(AStream: TStream; ADelimiter: Char=','; WithHeader: boolean=true;
|
||||
VisibleColumnsOnly: boolean=false);
|
||||
procedure SaveToCSVFile(AFileName: string; ADelimiter: Char=','; WithHeader: boolean=true;
|
||||
VisibleColumnsOnly: boolean=false);
|
||||
procedure LoadFromCSVStream(AStream: TStream; ADelimiter: Char=',';
|
||||
UseTitles: boolean=true; FromLine: Integer=0; SkipEmptyLines: Boolean=true);
|
||||
procedure LoadFromCSVFile(AFilename: string; ADelimiter: Char=',';
|
||||
UseTitles: boolean=true; FromLine: Integer=0; SkipEmptyLines: Boolean=true);
|
||||
procedure SaveToCSVStream(AStream: TStream; ADelimiter: Char=',';
|
||||
WriteTitles: boolean=true; VisibleColumnsOnly: boolean=false);
|
||||
procedure SaveToCSVFile(AFileName: string; ADelimiter: Char=',';
|
||||
WriteTitles: boolean=true; VisibleColumnsOnly: boolean=false);
|
||||
|
||||
property Cells[ACol, ARow: Integer]: string read GetCells write SetCells;
|
||||
property Cols[index: Integer]: TStrings read GetCols write SetCols;
|
||||
@ -10853,7 +10855,8 @@ begin
|
||||
end;
|
||||
|
||||
procedure TCustomStringGrid.LoadFromCSVStream(AStream: TStream;
|
||||
ADelimiter: Char=','; WithHeader: boolean=true; SkipLines: Integer=0);
|
||||
ADelimiter: Char=','; UseTitles: boolean=true; FromLine: Integer=0;
|
||||
SkipEmptyLines: Boolean=true);
|
||||
var
|
||||
MaxCols: Integer = 0;
|
||||
MaxRows: Integer = 0;
|
||||
@ -10862,7 +10865,7 @@ var
|
||||
function RowOffset: Integer;
|
||||
begin
|
||||
// return row offset of current CSV record (MaxRows) which is 1 based
|
||||
if withHeader then
|
||||
if UseTitles then
|
||||
result := Max(0, FixedRows-1) + Max(MaxRows-1, 0)
|
||||
else
|
||||
result := FixedRows + Max(MaxRows-1, 0);
|
||||
@ -10873,12 +10876,15 @@ var
|
||||
i, aRow: Integer;
|
||||
begin
|
||||
inc(LineCounter);
|
||||
if (LineCounter < SkipLines) then
|
||||
if (LineCounter < FromLine) then
|
||||
exit;
|
||||
|
||||
if Fields.Count=0 then
|
||||
exit;
|
||||
|
||||
if SkipEmptyLines and (Fields.Count=1) and (Fields[0]='') then
|
||||
exit;
|
||||
|
||||
// make sure we have enough columns
|
||||
if MaxCols<Fields.Count then
|
||||
MaxCols := Fields.Count;
|
||||
@ -10891,9 +10897,9 @@ var
|
||||
ColCount := MaxCols;
|
||||
end;
|
||||
|
||||
// setup columns captions of custom columns if they are enabled
|
||||
// setup columns captions if enabled by UseTitles
|
||||
if (MaxRows = 0) then
|
||||
if WithHeader then
|
||||
if UseTitles then
|
||||
begin
|
||||
if Columns.Enabled then
|
||||
for i:=0 to Fields.Count-1 do Columns[i].Title.Caption:=Fields[i]
|
||||
@ -10934,20 +10940,21 @@ begin
|
||||
end;
|
||||
|
||||
procedure TCustomStringGrid.LoadFromCSVFile(AFilename: string;
|
||||
ADelimiter: Char=','; WithHeader: boolean=true; SkipLines: Integer=0);
|
||||
ADelimiter: Char=','; UseTitles: boolean=true; FromLine: Integer=0;
|
||||
SkipEmptyLines: Boolean=true);
|
||||
var
|
||||
TheStream: TFileStreamUtf8;
|
||||
begin
|
||||
TheStream:=TFileStreamUtf8.Create(AFileName,fmOpenRead or fmShareDenyWrite);
|
||||
try
|
||||
LoadFromCSVStream(TheStream, ADelimiter, WithHeader, SkipLines);
|
||||
LoadFromCSVStream(TheStream, ADelimiter, UseTitles, FromLine, SkipEmptyLines);
|
||||
finally
|
||||
TheStream.Free;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TCustomStringGrid.SaveToCSVStream(AStream: TStream; ADelimiter: Char;
|
||||
WithHeader: boolean=true; VisibleColumnsOnly: boolean=false);
|
||||
WriteTitles: boolean=true; VisibleColumnsOnly: boolean=false);
|
||||
var
|
||||
i,j,StartRow: Integer;
|
||||
HeaderL, Lines: TStringList;
|
||||
@ -10957,7 +10964,7 @@ begin
|
||||
exit;
|
||||
Lines := TStringList.Create;
|
||||
try
|
||||
if WithHeader then begin
|
||||
if WriteTitles then begin
|
||||
if Columns.Enabled then begin
|
||||
if FixedRows>0 then begin
|
||||
HeaderL := TStringList.Create;
|
||||
@ -11019,13 +11026,13 @@ begin
|
||||
end;
|
||||
|
||||
procedure TCustomStringGrid.SaveToCSVFile(AFileName: string; ADelimiter: Char;
|
||||
WithHeader: boolean=true; VisibleColumnsOnly: boolean=false);
|
||||
WriteTitles: boolean=true; VisibleColumnsOnly: boolean=false);
|
||||
var
|
||||
TheStream: TFileStreamUtf8;
|
||||
begin
|
||||
TheStream:=TFileStreamUtf8.Create(AFileName,fmCreate);
|
||||
try
|
||||
SaveToCSVStream(TheStream, ADelimiter, WithHeader);
|
||||
SaveToCSVStream(TheStream, ADelimiter, WriteTitles, VisibleColumnsOnly);
|
||||
finally
|
||||
TheStream.Free;
|
||||
end;
|
||||
|
Loading…
Reference in New Issue
Block a user