AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Programm, das Datumsliste mit dazugehörigem Wert erstellt.
Thema durchsuchen
Ansicht
Themen-Optionen

Programm, das Datumsliste mit dazugehörigem Wert erstellt.

Ein Thema von bogomip · begonnen am 14. Jan 2006 · letzter Beitrag vom 14. Jan 2006
Antwort Antwort
Benutzerbild von bogomip
bogomip

Registriert seit: 19. Dez 2004
Ort: Hettenshausen
7 Beiträge
 
Delphi 6 Personal
 
#1

Programm, das Datumsliste mit dazugehörigem Wert erstellt.

  Alt 14. Jan 2006, 16:14
Hallo liebe Community,

ich brauche ein Programm, das folgende Liste (z.b. als TXT) erstellt:

Es soll in der ersten Spalte ein Datum stehen (Anfangs- und Enddatum beliebig einstellbar) und in der zweiten ein zugeordneter Zufallswert zwischen a und b. In der nächsten Zeile soll das Datum um einen Tag weitergerückt sein und ein neuer Zufallswert zugeordnet werden.
Also so:

23.2.2004 45
24.2.2004 21
25.2.2004 57
... ...

Dazu habe ich schon ein Formular, auf dem ich zwei TDateTimePicker habe, einen Button zum Speicherpfad auswählen und einen Generieren-Knopf.

Jetzt muss ich:
- abfragen, ob das erste Datum vom Zeitpunkt her früher war, als das zweit-ausgewählte.
- die Dateioperationen integrieren
- Jeweils das Datum und den Zufallswert (Ober und Untergrenze sollen im Programm festgelegt werden) in die Liste schreiben

Leider bin ich in Delphi noch absolut neu und unerfahren, brauche aber dringend dieses Programm. Da ich als Community-Neuling natürlich nicht erwarten kann, dass mir das jemand schreibt, möchte ich euch vielleicht nur bitten, mir etwas in die Spur zu helfen. Vielleicht wird dieses Programm, wenn mir Delphi gefällt, ja das Sprungbrett für eine neue Leidenschaft

Vielen Dank!

MfG bogomip
  Mit Zitat antworten Zitat
mr.unbekannt

Registriert seit: 20. Jul 2005
Ort: Schwerin
152 Beiträge
 
Delphi 7 Professional
 
#2

Re: Programm, das Datumsliste mit dazugehörigem Wert erstell

  Alt 14. Jan 2006, 16:37
be dem datum kann man leicht gucken, ob das zweite größer is als das erste, nimm doch mal die integrwerte von zum beispiel "jahr" und von "monat" und dem tag und gucke was größer is mit den if bedingungen!
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Programm, das Datumsliste mit dazugehörigem Wert erstell

  Alt 14. Jan 2006, 16:38
Zitat von bogomip:
H
Jetzt muss ich:
- abfragen, ob das erste Datum vom Zeitpunkt her früher war, als das zweit-ausgewählte.
if Datum1.date < Datum2.Date then ... Wobei Datum1 und Datum2 vom Typ TDateTimePicker sind.

Zitat:
- die Dateioperationen integrieren
- Jeweils das Datum und den Zufallswert (Ober und Untergrenze sollen im Programm festgelegt werden) in die Liste schreiben
[delph]
var
...
tf: TextFile;
Datum: string;
anz: integer;
j,m,t: Word;
--
AssignFile( tf, 'datei.txt');
Reset( tf);
Decodedate( datum1, j, m, t);
anz := Trunc(Datum2-Datum1); // Anzahl Tage
for i := 0 to anz -1 do
begin
rnd := Random( b-a)+a; // a: Untergrenze b: Obergrenze;
datum := DateToStr(EncodeDate( j, m, t+i));
WriteLn( datum, rnd);
inc( t);
if( t > ... // Hier überprüfung auf Monatsende, dann Monat(m) erhöhen usw.
..
end;
...
[/delphi]
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von tomsel
tomsel

Registriert seit: 8. Dez 2005
Ort: am Chiemsee
304 Beiträge
 
Delphi 7 Professional
 
#4

Re: Programm, das Datumsliste mit dazugehörigem Wert erstell

  Alt 14. Jan 2006, 16:49
Also, bei Variablen vom Typ TDate oder TDateTime kann man doch eine beliebige Anzahl von Tagen einfach addieren. Werte diesen Typs sind ja nichts Anderes als die Anzahl von Tagen seit dem, ich glaube, 01.01.1980 (schlagt mich nicht, wenn's falsch ist). Aber was ist TDateTimePicker?
Ein Experte ist ein Mann, der hinterher genau sagen kann, warum seine Prognose nicht gestimmt hat. (Winston Churchill)
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#5

Re: Programm, das Datumsliste mit dazugehörigem Wert erstell

  Alt 14. Jan 2006, 16:53
Hallo.

Es ist bei einer solchen Aufgabe immer vorteilhaft, wenn man Darstellung und Funktionalität weitgehend voneinander entkoppelt:

Delphi-Quellcode:
function CreateRandomList(dtLow, dtHigh: TDate;
  rndLow, rndHigh: Integer): TStringList;
var
  i: Integer;
begin
  Result := TStringList.Create;
  for i := Trunc(dtLow) to Trunc(dtHigh) do
    Result.Add(Format('%s %d', [DateToStr(i), rndLow + Random(rndHigh - rndLow)]));
end;
Die Prüfungen kann man dann in einer kapselnden Funktion unterbringen:

Delphi-Quellcode:
function CheckCreateRandomList(dtLow, dtHigh: TDate;
  rndLow, rndHigh: Integer): TStringList;
var
  dt: TDateTime;
  i: integer;
begin
  if dtLow > dtHigh then
  begin
    dt := dtLow;
    dtLow := dtHigh;
    dtHigh := dt;
  end;
  if rndLow > rndHigh then
  begin
    i := rndLow;
    rndLow := rndHigh;
    rndHigh := i;
  end;
  Result := CreateRandomList(dtLow, dtHigh, rndLow, rndHigh);
end;
Die gezeigte Kapsel soll aber nur das Prinzip verdeutlichen. Im konkreten Beispiel gehört der Prüf-Code wohl eher zur Benutzerschnittstelle. Eine so enge Kopplung zwischen dem Prüfen der Argumente und dem Ausführen der Funktion ist nicht immer gewünscht. Fehlt eigentlich nur noch der Test-Code.

Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von bogomip
bogomip

Registriert seit: 19. Dez 2004
Ort: Hettenshausen
7 Beiträge
 
Delphi 6 Personal
 
#6

Re: Programm, das Datumsliste mit dazugehörigem Wert erstell

  Alt 14. Jan 2006, 17:27
Danke soweit, dann werd ich mal versuchen, was ich da zusammengecoded bekomme

bogomip
  Mit Zitat antworten Zitat
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 00:03 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