showcsv.pp 873 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. program showcsv;
  2. {$mode objfpc}
  3. {$H+}
  4. uses db,csvdataset, classes, sysutils;
  5. Procedure usage;
  6. begin
  7. Writeln('Usage: ',ExtractFIleName(Paramstr(0)),' [-h] [-c col] filename');
  8. halt(1);
  9. end;
  10. Var
  11. FN,Column : String;
  12. F : TField;
  13. begin
  14. if (paramcount=0) or (paramstr(1)='-h') then
  15. usage;
  16. if (Paramstr(1)='-c') then
  17. begin
  18. Column:=Paramstr(2);
  19. FN:=Paramstr(3);
  20. end
  21. else if ParamCount<>1 then
  22. Usage
  23. else
  24. FN:=Paramstr(1);
  25. With TCSVDataset.Create(Nil) do
  26. try
  27. CSVOptions.FirstLineAsFieldNames:=True;
  28. LoadFromFile(FN);
  29. Active:=True;
  30. While not EOF do
  31. begin
  32. Write(RecNo,' : ');
  33. For F in FIelds do
  34. if (Column='') or (Column=F.FIeldName) then
  35. Write(' ',F.AsString);
  36. Writeln;
  37. Next;
  38. end;
  39. finally
  40. Free;
  41. end;
  42. end.