|
@@ -0,0 +1,48 @@
|
|
|
+program showcsv;
|
|
|
+
|
|
|
+{$mode objfpc}
|
|
|
+{$H+}
|
|
|
+
|
|
|
+uses db,csvdataset, classes, sysutils;
|
|
|
+
|
|
|
+Procedure usage;
|
|
|
+
|
|
|
+begin
|
|
|
+ Writeln('Usage: ',ExtractFIleName(Paramstr(0)),' [-h] [-c col] filename');
|
|
|
+ halt(1);
|
|
|
+end;
|
|
|
+
|
|
|
+Var
|
|
|
+ FN,Column : String;
|
|
|
+ F : TField;
|
|
|
+
|
|
|
+begin
|
|
|
+ if (paramcount=0) or (paramstr(1)='-h') then
|
|
|
+ usage;
|
|
|
+ if (Paramstr(1)='-c') then
|
|
|
+ begin
|
|
|
+ Column:=Paramstr(2);
|
|
|
+ FN:=Paramstr(3);
|
|
|
+ end
|
|
|
+ else if ParamCount<>1 then
|
|
|
+ Usage
|
|
|
+ else
|
|
|
+ FN:=Paramstr(1);
|
|
|
+ With TCSVDataset.Create(Nil) do
|
|
|
+ try
|
|
|
+ CSVOptions.FirstLineAsFieldNames:=True;
|
|
|
+ LoadFromFile(FN);
|
|
|
+ Active:=True;
|
|
|
+ While not EOF do
|
|
|
+ begin
|
|
|
+ Write(RecNo,' : ');
|
|
|
+ For F in FIelds do
|
|
|
+ if (Column='') or (Column=F.FIeldName) then
|
|
|
+ Write(' ',F.AsString);
|
|
|
+ Writeln;
|
|
|
+ Next;
|
|
|
+ end;
|
|
|
+ finally
|
|
|
+ Free;
|
|
|
+ end;
|
|
|
+end.
|