Autor Beitrag
vogeste0
Hält's aus hier
Beiträge: 4

XP, Linux
D6 Enterprise
BeitragVerfasst: Mi 20.04.05 12:07 
Hallo *ALL,

also zunächst möchte ich mich kurz Vorstellen (gehört sich glaube ich so!). Ich bin neu im Delphi-Forum und Schüler einer Technikerschule. Für ein Projekt der Schule schreibe ich ein Programm zur Arbeitszeiterfassung. Leider bin ich noch ein
Frischling im Delphi-Programmieren. Die wichtigsten Dinge habe ich schon herausbekommen, jedoch muss ich Euch hier mit einer
für Profis wahrscheinlich sinnlosen Frage nerven.

Ich habe bei der Arbeitszeiterfassung ein DateTimePicker eingesetzt. Dieser wird beim Öffnen des Formulars auf das aktuelle Datum gesetzt.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
procedure TForm1.DateTime(Sender: TObject);
begin
   DateTimePicker1.Date := now;
   filltextgrid
end;


Weiterhin wird der Wert aus dem DateTimePicker später mit in eine Textfile geschrieben.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
procedure TForm1.SaveClick(Sender: TObject);
var Datei:TStringlist;
var Zeile:String;
begin
{hiermit wird eine Stringlist erstellt}
  Datei:=TStringlist.Create;
 {hiermit wird die VAR Zeile erstellt und mit einem zusammengesetzten String
befüllt}

  Zeile:=DateToStr(DateTimePicker1.Date) + '=' + ComboBox1.Text + ',' +
  ComboBox2.Text + ',' + ComboBox3.Text + ',' + ComboBox4.Text;
{hiermit wird die aktuelle Datei aufgerufen und an das Ende der Datei die
nächste Zeile eingefügt}

  If FileExists(ExtractFilePath(Application.ExeName)+'arbeitszeit.txt'then
  Datei.LoadFromFile(ExtractFilePath(Application.ExeName)+'arbeitszeit.txt');
{hiermit wird die oben gefüllte VAR Zeile an die Stringlist übergeben}
  Datei.Values[DateToStr(DateTimePicker1.Date)]:= ComboBox1.Text + ',' +
  ComboBox2.Text + ',' + ComboBox3.Text + ',' + ComboBox4.Text;
{hiermit wird die VAR Datei, die die Stringlist enthält in einen Datei
geschrieben. Um den Ablageort mitzugeben, liest man über den Wert:
ExtractFilePath(Application.ExeName) aus und verknüpft diesen Wert mit dem
Dateinamen}

  Datei.SaveToFile(ExtractFilePath(Application.ExeName)+'arbeitszeit.txt');
{ganz wichtig, mit Datei.Free wird der Speicher anschließend wieder freigegeben}
  Datei.Free;
  end;
end;


Jetzt die eigentliche Frage: Es stellt kein Problem dar, den Datumswert in die Textfile zu übertragen, jetzt möchte ich jedoch den
Wochentag (Mo; Di; usw.) zusätzlich in die Textfile speichern. Was muss ich dazu tun?

Bitte leicht verständliche Antworten, da ich noch ganz am Anfang der Delphi-Evolutionskette stehe.

Danke und Gruß
:? vogeste0

Moderiert von user profile iconraziel: Code- durch Delphi-Tags ersetzt.
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6393
Erhaltene Danke: 147

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Mi 20.04.05 12:11 
:welcome: im DF.

In Delphi gibt es ein Funktion DayOfTheWeek iirc.
Die sollte dir das passende liefern.
vogeste0 Threadstarter
Hält's aus hier
Beiträge: 4

XP, Linux
D6 Enterprise
BeitragVerfasst: Mi 20.04.05 12:34 
Titel: Re: Antwort von jasocul
Hallo jasocul,

danke für die schnelle Antwort. DayofWeek ist ok, habe ich schon einmal in einem Beispielprogramm gesehen, jedoch verstehe ich nicht wie ich die DayOfWeek Geschichte aus dem DateTimePicker herausbekomme! Kannst Du mir ein kurzes Code-Beispiel geben? Das würde mir sehr helfen. Denn zur Zeit ist nix verstehn in Athen angesagt.

Danke
vogeste0 :?:
alias5000
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2145

WinXP Prof SP2, Ubuntu 9.04
C/C++(Code::Blocks, VS.NET),A51(Keil),Object Pascal(D2005PE, Turbo Delphi Explorer) C# (VS 2008 Express)
BeitragVerfasst: Mi 20.04.05 12:41 
Hi
schau mal unter www.delphibasics.co....sp?Name=DayOfTheWeek
Dort ist die ganze Funktion ausführlich erklärt
Als Datum übergibts du einfach Pickerxy.Date

_________________
Programmers never die, they just GOSUB without RETURN
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6393
Erhaltene Danke: 147

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Mi 20.04.05 12:46 
Einmal auf die Schnelle:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
procedure TForm1.Button2Click(Sender: TObject);
var
  DOW : String;
begin
  case DayOfWeek(DateTimePicker1.Date) of
    7 : DOW := 'SA';
    1 : DOW := 'SO';
    2 : DOW := 'MO';
    3 : DOW := 'DI';
    4 : DOW := 'MI';
    5 : DOW := 'DO';
    6 : DOW := 'FR';
  end;
  ShowMessage(dow);
end;

Ich habe nicht alle Wochentage geprüft. Evtl ist ein Index noch falsch.
Besser wäre es, wenn du dir eine vernünftige Funktion davon machst.


Zuletzt bearbeitet von jasocul am Mi 20.04.05 12:58, insgesamt 1-mal bearbeitet
vogeste0 Threadstarter
Hält's aus hier
Beiträge: 4

XP, Linux
D6 Enterprise
BeitragVerfasst: Mi 20.04.05 12:58 
Titel: Re: Bitte ein kurzes Codebeispiel
Hallo jasocul, hallo alias5000,

ihr habt mir sehr geholfen. Jasocul, danke für das kurze Code-Beispiel.
Alias5000, danke für den Link-Hinweis, diese Seite kannte ich noch nicht.

Gruß
vogeste0
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6393
Erhaltene Danke: 147

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Mi 20.04.05 12:59 
Habe gerade festgestellt, dass der Wert für Samstag 7 sein muss. Oben im Source schon korrigiert.
vogeste0 Threadstarter
Hält's aus hier
Beiträge: 4

XP, Linux
D6 Enterprise
BeitragVerfasst: Mi 20.04.05 13:59 
Titel: Re: Danke Danke
Hallo Jasocul,

echt super, jetzt funktioniert es einwandfrei. Ich habe den Code schon eingebastelt. Beim Testen war mir das mit dem Samstag auch aufgefallen, jedoch wusste ich nicht wie simple der Fehler jetzt zu beseitigen geht. Ich dachte schon wieder viel zu umständlich.

super super

Gruß
vogeste0 :D