AGB  ·  Datenschutz  ·  Impressum  







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

Einen Code optimieren

Ein Thema von LingNeu · begonnen am 13. Jan 2007 · letzter Beitrag vom 13. Jan 2007
Antwort Antwort
LingNeu

Registriert seit: 18. Dez 2006
164 Beiträge
 
Delphi 7 Enterprise
 
#1

Einen Code optimieren

  Alt 13. Jan 2007, 16:42
Hallo Delphifans,
habe eine Datumsabfrage mit ca. 100 Datumswerten. Wie kann man sowas noch optimieren.
Mit einer Case-Anweisung bring ich das einfach nicht zum Laufen. Dachte mit Case wäre es evtl. übersichtlicher.
Vielen Dank für jeden Hinweis
LingNeu


Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
//
if strtodate(edit1.Text) > strtodate('01.01.2007') then
   begin
   label2.Caption := '1.Zeitbereich';
   end;
if strtodate(edit1.Text) > strtodate('01.02.2007') then
   begin
   label2.Caption := '2.Zeitbereich';
   end;
if strtodate(edit1.Text) > strtodate('01.03.2007') then
   begin
   label2.Caption := '3.Zeitbereich';
   end;
end;
  Mit Zitat antworten Zitat
MrKnogge

Registriert seit: 9. Jun 2003
Ort: Pforzheim
2.458 Beiträge
 
Delphi 2007 Professional
 
#2

Re: Einen Code optimieren

  Alt 13. Jan 2007, 16:52
Case geht nur bei Rdinal-Typen, man könnte es nur sehr geringfügig optimieren:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  date: TDate;
begin
//
  date := strtodate(edit1.Text);

  if date > strtodate('01.01.2007') then label2.Caption := '1.Zeitbereich';
  if date > strtodate('01.02.2007') then label2.Caption := '2.Zeitbereich';
  if date > strtodate('01.03.2007') then label2.Caption := '3.Zeitbereich';
end;
Gruß
Christian Bootz
Einstein ist tot, Newton ist tot,
und mir ist auch schon ganz schlecht...
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#3

Re: Einen Code optimieren

  Alt 13. Jan 2007, 16:55
Hallo,

wenn es dir nur um den Tag geht, nicht aber um die Uhrzeit, dann kannst du den Vorkommaanteil des Delphi-Referenz durchsuchenTDateTime-Wertes benutzen - er enthält den Tag bezogen auf ein Basisdatum. Vielleicht kannst du auch durch eine Subtraktion (31. Dezember des Vorjahres) eine Tagesnummer errechnen. In jedem Fall erhältst du so einen ganzzahligen Wert, der auch mit einer CASE-Anweisung überprüft werden kann.

Gruß Hawkeye
  Mit Zitat antworten Zitat
LingNeu

Registriert seit: 18. Dez 2006
164 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Einen Code optimieren

  Alt 13. Jan 2007, 16:58
@MrKnogge
vielen Dank für Deine Hilfe,
hab mir schon fast sowas gedacht.
Vielleicht könnte ich eine Datenbank anlegen und da drin nach einem eingegebenen Datum suchen?
Evtl. ist das dann optimaler.

@Hawkeye219
ich weiß nicht wie sich die Sache dann über mehrere Jahre verhält. Muss ich mich erstmal schlau machen.
Danke für den Hinweis.

Gruss
LingNeu
  Mit Zitat antworten Zitat
Benutzerbild von SubData
SubData

Registriert seit: 14. Sep 2004
Ort: Stuhr
1.078 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Einen Code optimieren

  Alt 13. Jan 2007, 18:13
Hm...
Delphi-Quellcode:
var
  x : Integer;
begin
  x := Trunc(Datum);
  case x of
    39095: Label1.Caption := '13. Januar 2007';
    39096: Label1.Caption := '14. Januar 2007';
    39097: Label1.Caption := '15. Januar 2007';
  end;
end;

Alles vor dem Komma eines DateTime Wertes ist das Datum, alles danach ist die Uhrzeit.
Wir schneiden also einfach die Uhrzeit ab und können ohne weiteres ein Case auf den Datumsanteil machen ;>
Ronny
/(bb|[^b]{2})/
  Mit Zitat antworten Zitat
LingNeu

Registriert seit: 18. Dez 2006
164 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Einen Code optimieren

  Alt 13. Jan 2007, 18:23
@SubData

das ist ja echt cool !
Danke für diesen Tipp - kann man immer mal gebrauchen.
gruss
LingNeu
  Mit Zitat antworten Zitat
Benutzerbild von SubData
SubData

Registriert seit: 14. Sep 2004
Ort: Stuhr
1.078 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Einen Code optimieren

  Alt 13. Jan 2007, 19:09
Bitte.

Alternativ empfehle ich die Unit DateUtils mal genauer unter die Lupe zu nehmen.
Da finden sich evtl Funktionen und Prozeduren, die dir die Arbeit erleichtern sollten.
Ronny
/(bb|[^b]{2})/
  Mit Zitat antworten Zitat
13. Jan 2007, 19:22
Dieses Thema wurde von "Phoenix" von "Programmieren allgemein" nach "Object-Pascal / Delphi-Language" verschoben.
Hier gehts definitiv um Delphi
Antwort Antwort


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 17:10 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