AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TSTRINGLIST in ein Array kopieren

Ein Thema von gallstone · begonnen am 13. Okt 2011 · letzter Beitrag vom 21. Okt 2011
 
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#12

AW: TSTRINGLIST in ein Array kopieren

  Alt 13. Okt 2011, 14:53
zum Fertigbasteln, ein Rohgerüst:

(ja ich weiß es gibt Objektlisten, ja da könnten noch try finallys rein, ja einen Setter könnte man auch noch .........)
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TCVSClass=Class
    private
    Ffn:String;
    Fsl:TStringList;
    Fll:TList;
    function GetColumns: Integer;
    function GetRows: Integer;
    public
     Constructor Create(const fn:String;aDelimiter:Char);
     Destructor Destroy;
     Function GetElement(x, y: Integer): String;
    published

    Property Columns:Integer read GetColumns;
    Property Rows:Integer read GetRows;
  End;

  TForm1 = class(TForm)
    Button1: TButton;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

{ TCVSClass }

constructor TCVSClass.Create(const fn: String;aDelimiter:Char);
var
  i:Integer;
begin

  FFn := fn;
  Fsl := TStringList.Create;
  Fsl.LoadFromFile(fn);
  Fll := TList.Create;
  for I := 0 to Fsl.Count - 1 do
      begin
        Fll.Add(TStringList.Create);
        with TStringList(FLL[FLL.Count-1]) do
          begin
            Delimiter := aDelimiter;
            DelimitedText := Fsl[i];
          end;
      end;
end;

destructor TCVSClass.Destroy;
var
  i:Integer;
begin
  Fsl.Free;
  for I := 0 to Fll.Count - 1 do TStringList(Fll[i]).free;
  Fll.Free;

end;

function TCVSClass.GetColumns: Integer;
begin
  if Fll.Count>0 then
    Result := TStringList(FLL[0]).count
  else Result := 0;
end;

function TCVSClass.GetElement(x, y: Integer): String;
begin
  if (y > -1) and (y < Fll.Count) then
    begin
       if (x > -1) and ( x < TStringList(FLL[y]).Count) then
          begin
            Result := TStringList(FLL[y])[X];
          end else Result := '';
    end
  else Result := '';
end;

function TCVSClass.GetRows: Integer;
begin
  Result := Fll.Count;
end;




procedure TForm1.Button1Click(Sender: TObject);
var
  x,y:Integer;
begin
  With TCVSClass.Create('C:\temp\Mappe1.csv',';') do
    begin
      for x := 0 to Rows do
       for y := 0 to Columns do
        Memo1.Lines.Add(GetElement(x,y));

    end;
end;

end.
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:48 Uhr.
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-2025 by Thomas Breitkreuz