Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Textdatei in StringGrid anzeigen? (https://www.delphipraxis.net/103392-textdatei-stringgrid-anzeigen.html)

DeddyH 15. Nov 2007 14:52

Re: Textdatei in StringGrid anzeigen?
 
Tja, und wo ist die Prozedur Explode geblieben?
Delphi-Quellcode:
unit UnStringGrid;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Menus, StrUtils, Printers, ClipBrd, Grids;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    OpenDialog1: TOpenDialog;
    PrinterSetupDialog1: TPrinterSetupDialog;
    MainMenu1: TMainMenu;
    datei: TMenuItem;
    drucken: TMenuItem;
    ffnen1: TMenuItem;
    Druckereinstellungen1: TMenuItem;
    Drucken1: TMenuItem;
    PrintDialog1: TPrintDialog;
    AlleFelderlschen1: TMenuItem;
    StringGrid1: TStringGrid;
    Beenden1: TMenuItem;
    procedure ffnen1Click(Sender: TObject);
    procedure Druckereinstellungen1Click(Sender: TObject);
    procedure Drucken1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Beenden1Click(Sender: TObject);
    //Hier
  private
    { Private-Deklarationen }

  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

procedure Explode(const s, delimiter: String; items: TStrings);

implementation


{$R *.dfm}

procedure Explode(const s, delimiter: String; items: TStrings);
begin
  items.CommaText := StringReplace(AnsiQuotedStr(s, '"'), delimiter, '","', [rfReplaceAll]);
end;

procedure FillGrid(sg: TStringGrid; lines: TStrings; delim: Char);
var
  i: Integer;
begin
  for i := 0 to Pred(lines.Count) do
    Explode(lines[i], delim, sg.Rows[sg.FixedRows + i]);
end;


procedure TForm1.ffnen1Click(Sender: TObject);
var
  sl: TStringList;
begin
  if OpenDialog1.Execute then
  begin
    sl := TStringList.Create;
    try
      sl.LoadFromFile(OpenDialog1.FileName);
      FillGrid(StringGrid1, sl, ';');
    finally
      sl.Free;
    end;
  end;
end;

Borschti 15. Nov 2007 15:16

Re: Textdatei in StringGrid anzeigen?
 
Ich hatte sie da eingesetzt aber als es dann doch nicht funktioniert hat hab ichs wieder rausgemacht ;)

Als Fehler kommt stattdessen [Fehler] UnStringGrid.pas(40): Ungenügende Forward- oder External-Deklaration: 'Explode'

DeddyH 15. Nov 2007 15:46

Re: Textdatei in StringGrid anzeigen?
 
Sonst nimm halt den Prototypen wieder aus dem interface-Teil raus und stell sicher, dass die Prozedur als Erstes hinter implementation steht.

Borschti 15. Nov 2007 16:19

Re: Textdatei in StringGrid anzeigen?
 
Es wird immernoch [Fehler] UnStringGrid.pas(65): Undefinierter Bezeichner: 'Explode' angezeigt.

DeddyH 15. Nov 2007 16:25

Re: Textdatei in StringGrid anzeigen?
 
Poste nochmal die Unit, da stimmt doch was nicht.

Borschti 15. Nov 2007 16:41

Re: Textdatei in StringGrid anzeigen?
 
Delphi-Quellcode:
unit UnStringGrid;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Menus, StrUtils, Printers, ClipBrd, Grids;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    OpenDialog1: TOpenDialog;
    PrinterSetupDialog1: TPrinterSetupDialog;
    MainMenu1: TMainMenu;
    datei: TMenuItem;
    drucken: TMenuItem;
    ffnen1: TMenuItem;
    Druckereinstellungen1: TMenuItem;
    Drucken1: TMenuItem;
    PrintDialog1: TPrintDialog;
    AlleFelderlschen1: TMenuItem;
    StringGrid1: TStringGrid;
    Beenden1: TMenuItem;
    procedure ffnen1Click(Sender: TObject);
    procedure Druckereinstellungen1Click(Sender: TObject);
    procedure Drucken1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Beenden1Click(Sender: TObject);
  private
    { Private-Deklarationen }

  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;


implementation

procedure FillGrid(sg: TStringGrid; lines: TStrings; delim: Char);
var
  i: Integer;
begin
  for i := 0 to Pred(lines.Count) do
    Explode(lines[i], delim, sg.Rows[sg.FixedRows + i]);
end;


{$R *.dfm}




procedure TForm1.ffnen1Click(Sender: TObject);
var
  sl: TStringList;
begin
  if OpenDialog1.Execute then
  begin
    sl := TStringList.Create;
    try
      sl.LoadFromFile(OpenDialog1.FileName);
      FillGrid(StringGrid1, sl, ';');
    finally
      sl.Free;
    end;
  end;
end;
Ich habe jetzt
Delphi-Quellcode:
procedure Explode(const s, delimiter: String; items: TStrings);
wieder ganz raus gelassen da er mir sonst beide Fehlermeldungen anzeigt... :/

DeddyH 15. Nov 2007 16:43

Re: Textdatei in StringGrid anzeigen?
 
Du rufst in FillGrid Explode auf, hast aber den Quelltext von Explode immer noch nicht in Deine Unit kopiert.

Borschti 15. Nov 2007 17:00

Re: Textdatei in StringGrid anzeigen?
 
Ups ich hatte das nicht gesehn sorry für den Umstand :/


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:46 Uhr.
Seite 3 von 3     123   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz