Autor |
Beitrag |
chickenfigt1989
      
Beiträge: 444
Erhaltene Danke: 2
|
Verfasst: 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:
Delphi-Quelltext 1:
| Zielzeit:=ini.ReadDate('Daten', 'Zeiten', ''); |
lg
|
|
elundril
      
Beiträge: 3747
Erhaltene Danke: 123
Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
|
Verfasst: 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 
      
Beiträge: 444
Erhaltene Danke: 2
|
Verfasst: 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
      
Beiträge: 172
Erhaltene Danke: 3
Windows 7, Windows Vista, Windows XP, Ubuntu, Kubuntu, Pardus
Delphi 2010 SV, Java Editor, VS 2010 SV
|
Verfasst: Mo 15.08.11 23:18
probiers mal mit strtotime(blabla)
_________________ Hey, die Sonne scheint, da werd ich mal in kurzen Hosen fernsehn…
|
|
FinnO
      
Beiträge: 1331
Erhaltene Danke: 123
Mac OSX, Arch
TypeScript (Webstorm), Kotlin, Clojure (IDEA), Golang (VSCode)
|
Verfasst: 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 
      
Beiträge: 444
Erhaltene Danke: 2
|
Verfasst: Mo 15.08.11 23:24
Wenn ich es so mache kommt eine Acces Violation:
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:
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:
Delphi-Quelltext 1:
| [Error] Unit1.pas(79): Too many actual parameters |
lg
Nachtrag:
Hier ist der defaultwert nicht auf 0
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;
try ini.WriteDateTime('Daten','Zielzeit',Zielzeit); finally ini.Free; end;
Timer1.Enabled:=true;
end; |
|
|
jaenicke
      
Beiträge: 19312
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 15.08.11 23:56
|
|
chickenfigt1989 
      
Beiträge: 444
Erhaltene Danke: 2
|
Verfasst: Di 16.08.11 00:08
Danke hat geklappt.
Habe nun folgenden Code:
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; public 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
      
Beiträge: 1248
Erhaltene Danke: 187
XP - Server 2008R2
D2 - Delphi XE
|
Verfasst: 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
      
Beiträge: 744
Erhaltene Danke: 54
Win XP Pro, Win 7 Pro x64
Delphi 7, Delphi XE, C++ Builder 5, SAP R/3
|
Verfasst: Di 16.08.11 09:42
Also Sorry, jetzt geht mir hier aber die Hutschnur hoch!!
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!
PS:
@Rest: TInifiles kennt ein ReadDateTime. Da spart man sich die manuelle Umwandlung.
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
      

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)
|
Verfasst: 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
      
Beiträge: 148
Erhaltene Danke: 2
Windows 7
Delphi XE3 Pro + HTML5Builder
|
Verfasst: Di 16.08.11 14:34
Xion hat folgendes geschrieben : | 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.
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 
      
Beiträge: 444
Erhaltene Danke: 2
|
Verfasst: 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
      
Beiträge: 744
Erhaltene Danke: 54
Win XP Pro, Win 7 Pro x64
Delphi 7, Delphi XE, C++ Builder 5, SAP R/3
|
Verfasst: 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 
      
Beiträge: 444
Erhaltene Danke: 2
|
Verfasst: 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
      
Beiträge: 744
Erhaltene Danke: 54
Win XP Pro, Win 7 Pro x64
Delphi 7, Delphi XE, C++ Builder 5, SAP R/3
|
Verfasst: 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 
      
Beiträge: 444
Erhaltene Danke: 2
|
Verfasst: 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
      
Beiträge: 744
Erhaltene Danke: 54
Win XP Pro, Win 7 Pro x64
Delphi 7, Delphi XE, C++ Builder 5, SAP R/3
|
Verfasst: 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 
      
Beiträge: 444
Erhaltene Danke: 2
|
Verfasst: 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
      
Beiträge: 744
Erhaltene Danke: 54
Win XP Pro, Win 7 Pro x64
Delphi 7, Delphi XE, C++ Builder 5, SAP R/3
|
Verfasst: Di 16.08.11 15:34
chickenfigt1989 hat folgendes geschrieben : |
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
chickenfigt1989 hat folgendes geschrieben: | So sieht es jetzt aus:
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) Button1: TButton; Label1: TLabel; Timer1: TTimer; procedure Button1Click(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure FormActivate(Sender: TObject); private Zielzeit: TDateTime; public 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. |
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.
|
|