Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   CSV Header auslesen und mit Stringgridspalte vergleichen (https://www.delphipraxis.net/171637-csv-header-auslesen-und-mit-stringgridspalte-vergleichen.html)

NickD 16. Nov 2012 11:39

CSV Header auslesen und mit Stringgridspalte vergleichen
 
Hallo
komme gleich zu meinem Problem:
Ich habe eine CSV Datei mit Header Zeile und möchte die Headerzeile mit einer Spalte aus einem Stringgrid vergleichen. Wie macht man das am einfachsten?

CSV aufbau zb: Test1; Test2; Test3; <-- Header
300;bla;bla

Stringgrid: 2 Spalten, eine Zeile Header und ab 2. Spalte 2. Zeile abwärts soll er mit CSV Header vergleichen.
Version: Delphi XE2.
mfg Nick

mkinzler 16. Nov 2012 11:41

AW: CSV Header auslesen und mit Stringgridspalte vergleichen
 
Was meinst du mit Vergleichen? Auf das Vorhandensein der Spalten oder um den Inhalt abzugleicehn?

NickD 16. Nov 2012 11:47

AW: CSV Header auslesen und mit Stringgridspalte vergleichen
 
Es soll der Inhalt verglichen werden.
mfg Nick

Sir Rufo 16. Nov 2012 11:51

AW: CSV Header auslesen und mit Stringgridspalte vergleichen
 
Gar nicht, da das StringGrid nur zur Visualisierung und nicht zur Datenspeicherung genutzt wird.

Also erfolgt die Überprüfung mit den hinter dem StringGrid liegenden Daten.
Und da kann man sich ja was ganz tolles basteln.

NickD 16. Nov 2012 11:54

AW: CSV Header auslesen und mit Stringgridspalte vergleichen
 
Es liegt eine ini-Datei vor deren Werte Die 2. Spalte des Stringgrids befüllen dh. ich muss die CSV mit den Werten der ini vergleichen?
mfg Nick

Sir Rufo 16. Nov 2012 12:37

AW: CSV Header auslesen und mit Stringgridspalte vergleichen
 
Zitat:

Zitat von NickD (Beitrag 1191497)
Es liegt eine ini-Datei vor deren Werte Die 2. Spalte des Stringgrids befüllen dh. ich muss die CSV mit den Werten der ini vergleichen?
mfg Nick

Jo.

Und wenn du das besonders schick und einfach haben möchtest, dann schreibst du dir ein Klassenkonstrukt wo du auf beide Varianten gleich zugreifen kannst
Delphi-Quellcode:
type
  TDataStruct = class abstract
  protected
    function GetHeader( Column : integer ) : string; virtual; abstract;
    function GetValue( Column : Integer; Row : Integer ) : string; virtual; abstract;
    function GetRowCount : Integer; virtual; abstract;
    function GetColumnCount : Integer; virtual; abstract;
  public
    property Header[Column:Integer] : string read GetHeader;
    property Value[Column, Row : Integer] : string GetValue;
    property RowCount : Integer read GetRowCount;
    property ColumnCount : Integer read GetColumnCount;
  end;

  TCSVDataStruct = class( TDataStruct )
  protected
    function GetHeader( Column : integer ) : string; override;
    function GetValue( Column : Integer; Row : Integer ) : string; override;
    function GetRowCount : Integer; override;
    function GetColumnCount : Integer; override;
  public
    constructor Create( ACSVFileName : string );
  end;

  TIniDataStruct = class( TDataStruct )
  protected
    function GetHeader( Column : integer ) : string; override;
    function GetValue( Column : Integer; Row : Integer ) : string; override;
    function GetRowCount : Integer; override;
    function GetColumnCount : Integer; override;
  public
    constructor Create( AIniFilename : string );
  end;

NickD 27. Nov 2012 10:47

AW: CSV Header auslesen und mit Stringgridspalte vergleichen
 
Könnten Sie mir das nochmal genauer erklären? Bin noch nicht sehr lange in Delphi dabei. Würde mich über Hilfe freuen.
mfg Nick

p80286 27. Nov 2012 12:06

AW: CSV Header auslesen und mit Stringgridspalte vergleichen
 
Sir Rufo hat den Entwurf für zwei Klassen skizziert, die CSV und INI-dateien lesen können und nach außen hin den header der x.Spalte und den Wert der X.Spalte,Y.zeile liefern können.

Gruß
K-H


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:43 Uhr.

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