Einzelnen Beitrag anzeigen

Benutzerbild von MaBuSE
MaBuSE

Registriert seit: 23. Sep 2002
Ort: Frankfurt am Main (in der Nähe)
1.837 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: csv Datei Import ClassHelper für TClientDataSet

  Alt 27. Okt 2011, 10:35
Auf der Basis des Beispiels in dem vorherigen Beitrag habe ich noch einen Class Helper geschrieben.

Damit kann man ein TStringGrid mit einer csv Datei befüllen.

Beispiel:
Delphi-Quellcode:
...
uses StringGridCsvClassHelper;
...
procedure TForm1.Button1Click(Sender: TObject);
begin
  StringGrid1.LoadFromFile('Dateiname.csv');
end;
...
Das ist ein einfaches Beispiel für Class Helper und csv Import.
Vieleicht hilft's wem.

mfg
MaBuSE

ps: Hier ist die Unit des ClassHelpers:

Delphi-Quellcode:
unit StringGridCsvClassHelper;
// use at your own risk
interface

uses
  SysUtils, Classes, Grids;

type
  TStringGridCsvClassHelper = class helper for TStringGrid
    procedure LoadFromFile(Filename: string;
      const Delimiter: Char = ';'; const QuoteChar: Char = '"');
  end;

implementation

{ TStringGridCsvClassHelper }

procedure TStringGridCsvClassHelper.LoadFromFile(Filename: string;
  const Delimiter: Char = ';'; const QuoteChar: Char = '"');
var
  slFile: TStringList;
  slRow: TStringList;
  i: Integer;
  j: Integer;
begin
  slFile := TStringList.Create;
  slRow := TStringList.Create;
  slRow.Delimiter := Delimiter;
  slRow.QuoteChar := QuoteChar;
  try
    slFile.LoadFromFile(Filename);

    // StringGrid Init
    if slFile.Count > 0 then
    begin
      slRow.DelimitedText := slFile[0];
      FixedCols := 0;
      FixedRows := 0;
      ColCount := slRow.Count;
      RowCount := slFile.Count;
    end;

    // Fill StringGrid
    for i := 0 to slFile.Count - 1 do
    begin
      slRow.DelimitedText := slFile[i];
      for j := 0 to slRow.Count - 1 do
      begin
        Cells[j,i] := slRow[j];
      end;
    end;
  finally
    slFile.Free;
    slRow.Free;
  end;
end;

end.
(°¿°) MaBuSE - proud to be a DP member
(°¿°) MaBuSE - proud to be a "Rüsselmops" ;-)
  Mit Zitat antworten Zitat