Autor Beitrag
chickenfigt1989
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 444
Erhaltene Danke: 2



BeitragVerfasst: Mo 15.08.11 22:42 
Hallo,
Wie kann ich aus einer Ini datei eine Uhrzeit auslesen und der variable Zielzeit zuweisen?

Mit folgenden klappt es leider nicht:

ausblenden Delphi-Quelltext
1:
Zielzeit:=ini.ReadDate('Daten''Zeiten''');					


lg
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: Mo 15.08.11 22:46 
Warum funktionierts denn nicht? Was sagt dir der Compiler denn?

lg elundril

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
chickenfigt1989 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 444
Erhaltene Danke: 2



BeitragVerfasst: Mo 15.08.11 22:48 
[Error] Unit1.pas(80): Incompatible types: 'TDateTime' and 'String'
Nur wie geht es den richtig?
hab schon soviel getestet
acnut
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 172
Erhaltene Danke: 3

Windows 7, Windows Vista, Windows XP, Ubuntu, Kubuntu, Pardus
Delphi 2010 SV, Java Editor, VS 2010 SV
BeitragVerfasst: Mo 15.08.11 23:18 
probiers mal mit strtotime(blabla)

_________________
Hey, die Sonne scheint, da werd ich mal in kurzen Hosen fernsehn…
FinnO
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1331
Erhaltene Danke: 123

Mac OSX, Arch
TypeScript (Webstorm), Kotlin, Clojure (IDEA), Golang (VSCode)
BeitragVerfasst: Mo 15.08.11 23:18 
Du hast den defaultwert auch auf '' und nicht auf ein Datum (z.B. now) gesetzt.

Fehlermeldungen lesen hilft.
chickenfigt1989 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 444
Erhaltene Danke: 2



BeitragVerfasst: Mo 15.08.11 23:24 
Wenn ich es so mache kommt eine Acces Violation:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
procedure TForm1.FormActivate(Sender: TObject);
var
  ini: TIniFile;
       begin
Zielzeit:= Ini.ReadDateTime('Daten''Zeiten', Zielzeit);
end;

end.

Und hier:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
procedure TForm1.FormActivate(Sender: TObject);
var
  ini: TIniFile;
       begin
Zielzeit:= Ini.ReadDateTime(strtotime('Daten''Zeiten', Zielzeit));
end;

end.

Kommt folgendes:
ausblenden Delphi-Quelltext
1:
[Error] Unit1.pas(79): Too many actual parameters					


lg

Nachtrag:

Hier ist der defaultwert nicht auf 0

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:
procedure TForm1.Button1Click(Sender: TObject);
var
  ini: TIniFile;
  filename: String;
begin
  filename := ExtractFilePath(ParamStr(0)) + 'einstellungen.ini';
  ini := TIniFile.Create(filename);


  Zielzeit := now + 1;  

  // INI Datei im Programmverzeichnis anlegen

  try
    
    ini.WriteDateTime('Daten','Zielzeit',Zielzeit);
      finally
      ini.Free;  
  end;


  // Timer Starten. 
  Timer1.Enabled:=true;

end;
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 15.08.11 23:56 
user profile iconchickenfigt1989 hat folgendes geschrieben Zum zitierten Posting springen:
Wenn ich es so mache kommt eine Acces Violation:
Du hast das ini Objekt nicht erstellt.

user profile iconchickenfigt1989 hat folgendes geschrieben Zum zitierten Posting springen:
Kommt folgendes:
ausblenden Delphi-Quelltext
1:
[Error] Unit1.pas(79): Too many actual parameters					
StrToTime erwartet nur einen String. Du musst also wie gestern auch StrToTime auf einen aus der Ini ausgelesenen String anwenden.

Den Code hast du doch dort auch schon gehabt:
user profile iconchickenfigt1989 hat folgendes geschrieben Zum zitierten Posting springen:
ausblenden Delphi-Quelltext
1:
Zeit:=StrtoTime(ini.ReadString('Zeit','Zeit1',''));					


Oh mann habs doch geschnallt
chickenfigt1989 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 444
Erhaltene Danke: 2



BeitragVerfasst: Di 16.08.11 00:08 
Danke hat geklappt.

Habe nun folgenden Code:

ausblenden volle Höhe 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:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, IniFiles, ExtCtrls, StdCtrls;

type
  TForm1 = class(TForm)       
    Button1: TButton;
    Label1: TLabel;
    Timer1: TTimer;
    procedure Button1Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure FormActivate(Sender: TObject);
      private                        
    Zielzeit: TDateTime;
    { Private declarations }
  public                        
    { Public declarations }
  end;

var            
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  ini: TIniFile;
  filename: String;
begin
  filename := ExtractFilePath(ParamStr(0)) + 'einstellungen.ini';
  ini := TIniFile.Create(filename);


  Zielzeit := now + 1;  
  

  try
   
    ini.WriteDateTime('Daten','Zielzeit',Zielzeit);
      finally
      ini.Free; 
  end;


  
  Timer1.Enabled:=true;

end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  
  Label1.Caption:= TimeToStr(zielzeit - now); 


  
  if now >= Zielzeit then     
                
  begin
  Showmessage('Klappt');
  Timer1.enabled:=false;
  end;


end;

procedure TForm1.FormActivate(Sender: TObject);
var
  ini: TIniFile;
  filename: String;
begin
  filename := ExtractFilePath(ParamStr(0)) + 'einstellungen.ini';
  ini := TIniFile.Create(filename);

StrtoDateTime(ini.ReadString('Daten','Zielzeit',''));
end;


end.

Wenn ich das Programm starte ---> Button klick ---> Programm beende ---> Programm neu starte wieso wird die restzeit dan nicht im label angezeigt?
bummi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1248
Erhaltene Danke: 187

XP - Server 2008R2
D2 - Delphi XE
BeitragVerfasst: Di 16.08.11 07:51 
Schau Dir mal Zeile 81 an un überlege was Du da eigentlich schreiben wolltest....

_________________
Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS
Horschdware
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 744
Erhaltene Danke: 54

Win XP Pro, Win 7 Pro x64
Delphi 7, Delphi XE, C++ Builder 5, SAP R/3
BeitragVerfasst: Di 16.08.11 09:42 
Also Sorry, jetzt geht mir hier aber die Hutschnur hoch!! :evil: :evil:
Chickenfight, was du hier machst ist echt unter aller Kanone!

Zur Info: Wir haben uns gestern knapp eine Stunde im ICQ unterhalten, nachdem chicken mich zuvor hier im Forum mehrfach per PN gebeten hatte ihm zu helfen. Die ausführliche Anleitung per PN, wie man das Projekt umsetzt und welche Schlüsselwörter in der Suche zum Erfolg führen (inklusive Beispiele) haben wohl nicht gereicht.
Also eine ganze Stunde Zeit aufgebracht, um per ICQ die letzten Unklarheiten zu beseitigen und sogar ein Bisschen Grundlagenwissen zu vermitteln. Dazu gabs Codebeispiele und Hilfestellung jeglicher Art. Sogar das halbe Projekt haben wir so umgesetzt. Warum? Aus reiner Nächstenliebe, Altruismus, nennt es wie ihr wollt...

Dummerweise wurde NICHTS - und ich wiederhole das: NICHTS - von dem, was ich gesagt hatte sinnvoll umgesetzt. Stets ein Copy&Paste ohne nachzudenken. Eine Variable heisst anders? Egal. Variable ist schon Deklariert? Egal, in der Methode nochmal deklarieren. Vergleiche zweier Variablen? Keine Ahnung wie das geht. Und so weiter und so fort.
Jeglicher Unsinn den man sich eben vorstellen kann.

Grundlagen verstanden: Nein.
Ratschläge und Anleitungen befolgt: Nein.
Buch gekauft: Nein (5 EUR sind zu teuer).
Tutorial gelesen: ja, aber nichts verstanden.

Und jetzt kommt heute morgen (Nacht) hier ein Thread, der die letzten paar Codezeilen, die du dir hättest LOCKER zusammenreimen können (anhand von dem was ich dir geschrieben habe) und bittest darum, dass dir das jemand macht. Noch nicht einmal die Ini sprichst du richtig an, obwohl ich dir das einmal komplett geschrieben habe - mit allem drum und dran.

Und dann kommt noch dazu, dass du hier diesen "Quelltext"(-stummel) postest, meine Kommentare entfernt hast und - da ich mit keinem Wort erwähnt werde - ihn wohl als deinen eigenen ausgibst.

Sag mal, schämst du dich nicht?


Zitat: "Ich lerne eher durch rumprobieren". Nein, tust du nicht. Du lernst nichts.
Wenn man jetzt inzwischen vier(!) Wochen für läppische 30 Zeilen Code benötigt, dann hat das Ganze keinen Sinn. Insbesondere wenn man dazu noch andere Personen miteinbindet und deren Hilfe ignoriert.

Chickenfigt, ich bin gerade so was von sauer, das glaubst du mir nicht! :evil:


PS:
@Rest: TInifiles kennt ein ReadDateTime. Da spart man sich die manuelle Umwandlung. :idea:


noch ein edit:
chicken: hör bitte ENDLICH auf, hier ständig komplette Quelltexte zu posten und zu schreien "geht nicht", bevor du dir keine eigenen Gedanken zum Problem gemacht hast.
Wie die Restzeit ausgegeben wird und dass du beim Programmstart, wenn die Zielzeit geladen wurde den Timer starten musst, das hatten wir gestern AUCH geklärt!

_________________
Delphi: XE - OS: Windows 7 Professional x64

Für diesen Beitrag haben gedankt: BenBE, DonManfred, elundril, Hobby-Programmierer, jasocul, Marc., Tintenblut, Xion
Xion
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
EE-Maler
Beiträge: 1952
Erhaltene Danke: 128

Windows XP
Delphi (2005, SmartInspect), SQL, Lua, Java (Eclipse), C++ (Visual Studio 2010, Qt Creator), Python (Blender), Prolog (SWIProlog), Haskell (ghci)
BeitragVerfasst: Di 16.08.11 11:00 
TIniFiles sind wirklich einfach zu nutzen.

Ein super Tutorial gibts hier:
www.kuknet.de/tutorial1.pdf
Ich glaube es gibt niemanden, der das nicht kapiert...

_________________
a broken heart is like a broken window - it'll never heal
In einem gut regierten Land ist Armut eine Schande, in einem schlecht regierten Reichtum. (Konfuzius)
DonManfred
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 148
Erhaltene Danke: 2

Windows 7
Delphi XE3 Pro + HTML5Builder
BeitragVerfasst: Di 16.08.11 14:34 
user profile iconXion hat folgendes geschrieben Zum zitierten Posting springen:
Ich glaube es gibt niemanden, der das nicht kapiert...


Sorry das ich das schreiben muss aber wie es scheint hast Du die - sehr stark ausgebildete(!) - Lernrsistenz von chickenfight nicht beachtet. :D

Der Post über deinen sagt eigentlich alles. :-/

Nichts desto trotz bewundere ich (Hut ab davor!) die Mühen die sich hier so manche geben (Horschdware, jaenicke, Du um nur ein paar zu nennen) um Chicken IMMER WIEDER helfen zu "wollen". Auch wenn er es schon dutzenderweise bewiesen hat, das er scheinbar nicht LernFÄHIG ist. Er war, ist und wird wohl auch immer ein C&P-Programmierer bleiben. Schade eigentlich das er die gutmütigkeit der User hier immer wieder aufs neue auf die Probe stellt. :-(

_________________
Gruss Manfred
chickenfigt1989 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 444
Erhaltene Danke: 2



BeitragVerfasst: Di 16.08.11 15:00 
@Horschdware


Ich hab keine Kommentare gelöscht und wir haben gar nichts gestern in Icq besprochen.
Ich hab dich per pn gebeten mehr aber nicht

lg
Horschdware
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 744
Erhaltene Danke: 54

Win XP Pro, Win 7 Pro x64
Delphi 7, Delphi XE, C++ Builder 5, SAP R/3
BeitragVerfasst: Di 16.08.11 15:04 
Entschuldigung, wie bitte?
Soll ich die Logs aus dem ICQ hier posten?

Der Quelltext der oben von dir gepostet wurde, stammt - bis auf ein paar Zeilen - von mir und war mit Kommentaren versehen marke "Hier wird die Ini angesprochen", "Hier werden die Resourcen wieder freigegeben", "Public Bereich des TForm1", etc.

Ich hoffe mal, du willst jetzt hier nicht im Ernst behaupten, ich hätte mir den gestrigen Abend nur ausgedacht. :!:

_________________
Delphi: XE - OS: Windows 7 Professional x64
chickenfigt1989 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 444
Erhaltene Danke: 2



BeitragVerfasst: Di 16.08.11 15:06 
Ich will hier keinen Beschuldigen ect.
jedoch lass ich mir nicht unterstellen ich sei Dumm und so.

Ich habe seit gut 6 Monaten kein Icq Account mehr.

lg
Horschdware
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 744
Erhaltene Danke: 54

Win XP Pro, Win 7 Pro x64
Delphi 7, Delphi XE, C++ Builder 5, SAP R/3
BeitragVerfasst: Di 16.08.11 15:10 
Du hast mich hier im Forum per PN gebeten, dass wir uns im ICQ treffen, hast mir deine ICQ Nummer gegeben.
Zitat:

Von: chickenfigt1989
Verfasst: Mo 15.08.11 17:36
Titel: Re: Mal eine Frage Zitat
Hab dich eh schonmal geaddet musst mich nur noch hinzufügen.

396547XXX

lg

Meine Freundin saß gestern Abend neben mir und hat sich darüber lustig gemacht, was wir da treiben.
Ich sehe sogar in oben gepostetem Code die Stellen, an denen meine Kommentare waren - da ist jetzt viel leerer Raum entstanden.

Ich lasse mich doch hier nicht von dir veralbern!


edit: sogar die verhackte Einrückung von gestern Abend ist so geblieben!

_________________
Delphi: XE - OS: Windows 7 Professional x64
chickenfigt1989 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 444
Erhaltene Danke: 2



BeitragVerfasst: Di 16.08.11 15:12 
Ja wie bereits gesagt hab ich schon lange kein ICQ mehr.
Naja kann auch irgendnen text schreiben und behaupten denn hast du mir per pn geschrieben
Horschdware
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 744
Erhaltene Danke: 54

Win XP Pro, Win 7 Pro x64
Delphi 7, Delphi XE, C++ Builder 5, SAP R/3
BeitragVerfasst: Di 16.08.11 15:14 
Ok, ich denke hier reicht das langsam. Das hat jetzt langsam Kindergarten Niveau erreicht.

Ich melde dich jetzt bei einem Moderator und bitte im gleichen Zug darum, diesen Thread zu schliessen.

_________________
Delphi: XE - OS: Windows 7 Professional x64
chickenfigt1989 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 444
Erhaltene Danke: 2



BeitragVerfasst: Di 16.08.11 15:28 
Ja meld mich weist du ich lass mir nichts unterstellen.
Nur weil du meinst das sei dein code.
Nein das ist mein Code denn ich per Copy & Paste zuammengeschustert hab
Horschdware
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 744
Erhaltene Danke: 54

Win XP Pro, Win 7 Pro x64
Delphi 7, Delphi XE, C++ Builder 5, SAP R/3
BeitragVerfasst: Di 16.08.11 15:34 
user profile iconchickenfigt1989 hat folgendes geschrieben Zum zitierten Posting springen:

Nein das ist mein Code denn ich per Copy & Paste zuammengeschustert hab


Das ist doch glatt gelogen. Die Konstruktion oben mit try..finally kennst du doch selbst gar nicht. Sieht man ja an dem zweiten Mal als du auf ne Ini zugreifen willst.
Darüber hinaus: Du hast mir heute Nacht noch deinen aktuellen Stand per PN zugeschickt. Da sind sogar noch Kommentare von mir UND dir drin!

Siehe:
Von: chickenfigt1989
Verfasst: Di 16.08.11 00:03
Titel: Re: Mal eine Frage
user profile iconchickenfigt1989 hat folgendes geschrieben:
So sieht es jetzt aus:
ausblenden volle Höhe 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:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, IniFiles, ExtCtrls, StdCtrls;

type
  TForm1 = class(TForm)        /// TForm1 !!
    Button1: TButton;
    Label1: TLabel;
    Timer1: TTimer;
    procedure Button1Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure FormActivate(Sender: TObject);
      private                         // <---- private
    Zielzeit: TDateTime;
    { Private declarations }
  public                         // <------ public
    { Public declarations }
  end;

var             /// <---- Globale Variablen!
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  ini: TIniFile;
  filename: String;
begin
  filename := ExtractFilePath(ParamStr(0)) + 'einstellungen.ini';
  ini := TIniFile.Create(filename);
//     /ermittele HIER die zielzeit/!

  Zielzeit := now + 1;  // Aktueller Zeitstempel + 24 Stunden

  // INI Datei im Programmverzeichnis anlegen

  try
    // Versuche Zielzeit zu speichern
    ini.WriteDateTime('Daten','Zielzeit',Zielzeit);
      finally
      ini.Free;  // Resourcen freigeebn
  end;


  // Timer Starten. Bitte du
  Timer1.Enabled:=true;

end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  // Ausgabe der Restzeit in Label.- Du bitte
  Label1.Caption:= TimeToStr(zielzeit - now); //     Richtig so?


  // Vergleiche aktuelle Zeit mit Zielzeit. Wenn größer/gleich, dann reagieren
  if now >= Zielzeit then     // Anfängerfehler. Seite 1 im Buch. Semikolon falsch
                // Du sollst auf Größer/Gleich vergleichen. Was amchst du? Das Gegenteil
  begin
  Showmessage('Klappt');
  Timer1.enabled:=false;
  end;


end;

procedure TForm1.FormActivate(Sender: TObject);
var
  ini: TIniFile;
  filename: String;
begin
  filename := ExtractFilePath(ParamStr(0)) + 'einstellungen.ini';
  ini := TIniFile.Create(filename);

StrtoDateTime(ini.ReadString('Daten','Zielzeit',''));
end;


end.

Allerdings wenn ich das Programm starte wird die restzeit nicht in label angezeigt.
...


Ich lasse mich genauso wenig als Lügner darstellen. Glaub mir das!
Ich kann nur - im Gegensatz zu dir - meine Version belegen.

Normalerweise wäre so etwas wie eine Entschuldigung von deiner Seite aus her angebracht. Aber du reitest dich gerade nur noch mehr rein. Traurig, wirklich!

_________________
Delphi: XE - OS: Windows 7 Professional x64
Dieses Thema ist gesperrt, Du kannst keine Beiträge editieren oder beantworten.

Das Thema wurde von einem Team-Mitglied geschlossen. Wenn du mit der Schließung des Themas nicht einverstanden bist, kontaktiere bitte das Team.