You've already forked lazarus-ccr
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@8080 8e941d3f-bd1b-0410-a28a-d453659cc2b4
76 lines
2.3 KiB
ObjectPascal
76 lines
2.3 KiB
ObjectPascal
program demo_search;
|
|
|
|
{$mode objfpc}{$H+}
|
|
|
|
uses
|
|
{$IFDEF UNIX}{$IFDEF UseCThreads}
|
|
cthreads,
|
|
{$ENDIF}{$ENDIF}
|
|
SysUtils, Classes, TypInfo,
|
|
fpsTypes, fpSpreadsheet, fpsSearch, fpsUtils;
|
|
|
|
var
|
|
workbook: TsWorkbook;
|
|
worksheet: TsWorksheet;
|
|
searchParams: TsSearchParams;
|
|
rowFound, colFound: Cardinal;
|
|
worksheetFound: TsWorksheet;
|
|
|
|
begin
|
|
workbook := TsWorkbook.Create;
|
|
try
|
|
worksheet := workbook.AddWorksheet('Test');
|
|
|
|
worksheet.WriteNumber(0, 0, 10); // A1
|
|
worksheet.WriteNumber(1, 0, 2); // A2
|
|
worksheet.WriteNumber(2, 0, 5); // A3 <---
|
|
worksheet.WriteNumber(3, 0, 1); // A4
|
|
worksheet.WriteNumber(4, 0, 5); // A5 <---
|
|
worksheet.WriteNumber(5, 0, 3); // A6
|
|
worksheet.WriteNumber(0, 1, 5); // B1 <---
|
|
|
|
worksheet.WriteComment(0, 0, '5');
|
|
worksheet.WriteComment(1, 0, '2');
|
|
|
|
searchParams := InitSearchParams('5', [soEntireDocument]);
|
|
|
|
// Create search engine and execute search
|
|
with TsSearchEngine.Create(workbook) do begin
|
|
if FindFirst(searchParams, worksheetFound, rowFound, colFound) then begin
|
|
WriteLn('First "', searchparams.SearchText, '" found in cell ',
|
|
GetCellString(rowFound, colFound), ' of worksheet ', worksheetFound.Name);
|
|
while FindNext(searchParams, worksheetFound, rowFound, colFound) do
|
|
WriteLn('Next "', searchParams.SearchText, '" found in cell ',
|
|
GetCellString(rowFound, colFound), ' of worksheet ', worksheetFound.Name);
|
|
end;
|
|
Free;
|
|
end;
|
|
|
|
// Now search in comments
|
|
Include(searchparams.Options, soSearchInComment);
|
|
with TsSearchEngine.Create(workbook) do begin
|
|
if FindFirst(searchParams, worksheetFound, rowFound, colFound) then begin
|
|
WriteLn('First "', searchparams.SearchText, '" found in comment of cell ',
|
|
GetCellString(rowFound, colFound), ' of worksheet ', worksheetFound.Name);
|
|
while FindNext(searchParams, worksheetFound, rowFound, colFound) do
|
|
WriteLn('Next "', searchParams.SearchText, '" found in comment of cell ',
|
|
GetCellString(rowFound, colFound), ' of worksheet ', worksheetFound.Name);
|
|
end;
|
|
Free;
|
|
end;
|
|
|
|
finally
|
|
workbook.Free;
|
|
end;
|
|
|
|
if ParamCount = 0 then
|
|
begin
|
|
{$IFDEF MSWINDOWS}
|
|
WriteLn;
|
|
WriteLn('Press [ENTER] to quit...');
|
|
ReadLn;
|
|
{$ENDIF}
|
|
end;
|
|
end.
|
|
|