AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Spalten überprüfen...

Ein Thema von Simo · begonnen am 30. Apr 2014 · letzter Beitrag vom 5. Mai 2014
 
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.740 Beiträge
 
Delphi 6 Enterprise
 
#14

AW: Spalten überprüfen...

  Alt 2. Mai 2014, 14:58
Wenn du immer nur den selben Kram postest, mit Doppelposts pushst usw., dann verlier ich auch irgendwie die Lust zu helfen, schließlich ist es hier im Forum auch nicht üblich die Hausaufgaben komplett zu machen. Daher hier mal mein letzter Ansatz, danach musst du allein weiter machen:
(ist ungetestet, da nur hier in den Editor getippt)


Unit 1: Checkfunktionen:
Delphi-Quellcode:
unit MyChkXML;

interface
uses SysUtils, WinTypes, WinProcs, Messages, Classes,Forms, Dialogs, ExtCtrls,
     StdCtrls, Buttons,ggStringGrid,Grids ;

type
  TCheck = Record
    Column:integer;
    Rule:integer;
  end;

  TChecklist = array of TCheck;

  TMyChek = class
  private
    MSG:TStringlist;
    Checklist:TChecklist;
    Grid:TStringGrid;

    function Check(Checknumber:Integer):Boolean;
    function MyChekGleich(Column:Integer):Boolean;
    function MyChekInteger(Column:Integer):Boolean;
    function MyChekFloat(Column:Integer) :Boolean;
  public
    procedure AddCheck(Column,Rulenumber);
    function ExecuteCheck:Boolean;
    function CheckResults:String;
    constructor create(AGrid:TStringGrid);
    destructor destroy;
  end;

implementation

constructor TMyChek.Create(AGrid:TStringGrid);
begin
  inherited create;
  Grid:=AGrid;
  MSG:=TStringlist.create;
end;

desctructor TMyChek.Destroy();
begin
  MSG.Free;
  inherited;
end;

procedure TMyChek.AddCheck(Column,Rulenumber);
begin
  SetLength(Checklist,Length(Checklist)+1);
  Checklist[High(Checklist)].Column:=Column;
  Checklist[High(Checklist)].Rule:=Rulenumber;
end;

function TMyChek.ExecuteCheck:Boolean;
var i:integer;
begin
  Result:=true;
  for i:=Low(Checklist) to High(Checklist) do
    if not Check(i) then
      Result:=false;
end;

function TMyChek.Check(Checknumber):Boolean;
begin
  if Checklist[i].Rule = 0 then
    Result:=MyChekGleich(Checklist[i].Column)
  else if Checklist[i].Rule = 1 then
    Result:=MyChekInteger(Checklist[i].Column)
  else if Checklist[i].Rule = 2 then
    Result:=MyChekFloat(Checklist[i].Column)
  else
    Result:=true; //Keine bekannte Regel, dann immer OK
end;

function TMyChek.MyChekInteger(Column:Integer):Boolean;
var i:Integer;
    input:String;
    output:integer;
begin
  Result:=true;
  for i:=0 to Grid.Rows-1 do //Grid.Rows.Count-1 ???
    begin
    input:=Grid.Cells[Column,i];
    if not TryStrToFloat(input,output) then
      begin
      if Result then
        MSG.Add('Spalte: '+IntToStr(Column)+', Regel: 1 (CheckInteger)')
      MSG.Add('Fehler in Reihe '+IntToStr(i)+': '+input)
      Result:=false;
      end;
    end;
end;

function TMyChek.MyChekFloat(Column:Integer): Boolean;
begin
  //Analog
end;

function TMyChek.MyChekGleich(Column:Integer):Booelean ;
begin
  //Schon was schwieriger, aber solltest du auch hinkriegen.
end;

end.
Zu Problem Nr. 2 schau dir wie gesagt mal das Ini-Tutorial an.

Viel Erfolg, ich bin raus.
Ralph

Geändert von Jumpy ( 2. Mai 2014 um 15:03 Uhr)
  Mit Zitat antworten Zitat
 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 21:22 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