AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Timer: speichern in ini und auslesen...
Thema durchsuchen
Ansicht
Themen-Optionen

Timer: speichern in ini und auslesen...

Ein Thema von Anfänger · begonnen am 25. Okt 2002 · letzter Beitrag vom 26. Okt 2002
Antwort Antwort
Seite 2 von 3     12 3      
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#11
  Alt 26. Okt 2002, 00:42
Moin Anfänger,

und hier das Beispiel.
Da bleibt vermutlich noch ein wenig zum Überdenken

Es ist die Komplett Unit, ich hab' nur ein Formular mit einem Edit versehen:

Code:
[b]unit[/b] MAIN;

[b]interface[/b]

[b]uses[/b]
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,IniFiles,
  ComCtrls, StdCtrls;

[b]type[/b]
  TForm1 = [b]class[/b](TForm)
    Edit1: TEdit;
    [b]procedure[/b] FormCreate(Sender: TObject);
    [b]procedure[/b] FormDestroy(Sender: TObject);
  [b]private[/b]
    [color=#000080]{ Private-Deklarationen }[/color]
    FIniFile : TIniFile;
  [b]public[/b]
    [color=#000080]{ Public-Deklarationen }[/color]
  [b]end[/b];

[b]var[/b]
  Form1: TForm1;

[b]resourcestring[/b]
  _rsLastAccess = 'LetzterZugriff';
  _rsDate      = 'Datum';
  _rsTime      = 'Zeit';

[b]const[/b]
  _asDays : [b]array[/b] [1..7] [b]of[/b] [b]string[/b] = ('Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag');

[b]implementation[/b]

[color=#000080]{$R *.DFM}[/color]

[b]procedure[/b] TForm1.FormCreate(Sender: TObject);

[b]var[/b]
  sWork : [b]string[/b];

[b]begin[/b]
  [color=#000080]// Da die Resourcen im OnDestroy Event wieder freigegeben werden[/color]
  [color=#000080]// entfällt der try/finally Block hier.[/color]
  [color=#000080]// In finally würde eh' nichts stehen[/color]
  FIniFile  := TIniFile.Create(ExtractFilePath(paramstr(0))+'Zeiten.ini');
  sWork     := FIniFile.ReadString(_rsLastAccess,_rsDate,DateToStr(Now));
  [color=#000080]// Mal etwas kompakter zusammengeschrieben[/color]
  Edit1.Text := Format('Sie haben am %s dem %s um %s ...',[_asDays[DayOfWeek(StrToDate(sWork))],sWork,FIniFile.ReadString(_rsLastAccess,_rsTime,TimeToStr(now))]);
[b]end[/b];

[b]procedure[/b] TForm1.FormDestroy(Sender: TObject);
[b]begin[/b]
  [color=#000080]// Falls Create schon fehlgeschlagen ist gibt's auch nichts[/color]
  [color=#000080]// zu schreiben oder freizugeben[/color]
  [b]if[/b] Assigned(FIniFile) [b]then[/b]
  [b]begin[/b]
    FIniFile.WriteString(_rsLastAccess,_rsDate,DateToStr(Now));
    FIniFile.WriteString(_rsLastAccess,_rsTime,TimeToStr(Now));
    FIniFile.UpdateFile;
    FreeAndNil(FIniFile);
  [b]end[/b];
[b]end[/b];

[b]end[/b].
Zitat:
Anfänger (der keiner bleiben will)
War jeder auf jedem Gebiet mal auf dem er (oder sie) es nicht mehr ist, und kann es auf anderen Gebieten jederzeit werden

Mir ist niemand bekannt, der, z.B. Delphi, mit den Genen geliefert bekommen hat.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Anfänger

Registriert seit: 24. Okt 2002
Ort: Hamburg
17 Beiträge
 
Delphi 4 Standard
 
#12
  Alt 26. Okt 2002, 00:59
Ach du dickes Ei

das kann wohl etwas länger dauern.

Vielen Dank...

und zu
Zitat:
Deswegen gibt es uns ja.
Welch ein GLÜCK...

und
Zitat:
Dann musst Du ja jedes Jahr Deinen Usernamen ändern...
wenn das so einfach wäre, dann hät Hamburg schon sein eignen Bill Gates

Gruß und Dank
Anfänger
Anfänger aus HH
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#13
  Alt 26. Okt 2002, 01:06
Moin Anfänger,

noch ein kleiner Nachtrag zu FreeAndNil.

Weiter oben hatte ich dazu schon was geschrieben.

Gibt's erst ab D5 (wie ich Deinem Posting entnehme), und lässt sich durch

IniFile.Free;
IniFile := nil;

ersetzten.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Anfänger

Registriert seit: 24. Okt 2002
Ort: Hamburg
17 Beiträge
 
Delphi 4 Standard
 
#14
  Alt 26. Okt 2002, 01:31
Hi Christian,

ich habe es soweit hinbekommen (in einem neuen Testprogramm), aber was muß ich eintragen das auch der Wochetag in der ini steht.
Zur Zeit sieht es so aus.

ist:
[LetzterZugriff]
Datum=26.10.2002
Zeit=01:26:50

soll:
[LetzterZugriff]
Datum=26.10.2002
Zeit=01:26:50
Tag=Sonnabend

Und warum geht das nicht im Progrmm?

Ich habe die Einträge die ich brauch 1:1 übernommen.
Aber trotzdem diese Fehlermeldung:

[Fehler] Unit1.pas(634): Inkompatible Typen
[Fehler] Unit1.pas(636): Record, Objekt oder Klassentyp erforderlich
[Fehler] Unit1.pas(637): Record, Objekt oder Klassentyp erforderlich
[Fehler] Unit1.pas(638): Record, Objekt oder Klassentyp erforderlich
[Fehler] Unit1.pas(639): Record, Objekt oder Klassentyp erforderlich
[Fehler] Unit1.pas(640): Inkompatible Typen: 'String' und 'Pointer'
Code:
procedure TForm1.FormDestroy(Sender: TObject);
begin
     if Assigned(IniFile) then
       begin
         IniFile.WriteString(_rsLastAccess,_rsDate,DateToStr(Now));
         IniFile.WriteString(_rsLastAccess,_rsTime,TimeToStr(Now));
         IniFile.UpdateFile;
         IniFile.Free;
         IniFile := nil;
       end;
end;
Woran kann das liegen, in der Hilfe steht leider nicht das drin was ich suche...

Vieleicht kannst du mir ja noch ein Tip oder Rat geben.
Ich habe echt keine mehr.
Zumal das im Testprogramm geht.

Danke und Gruß
Anfänger
Anfänger aus HH
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#15
  Alt 26. Okt 2002, 12:13
Moin Anfänger,

also den Wochentag schreibe ich nicht mit raus, weil sich der über das Datum berechnen lässt.

Was die Fehlermeldungen angeht:
Bist Du sicher, dass IniFile vom Typ TIniFile ist?
So wie ich das sehe ist das ein String, zumindest deutet die letzte Fehlermeldung darauf hin (Zeile 640).

Wäre IniFile vom Typ TIniFile, wäre es ein Pointer, und somit wäre die Zuweisung richtig.

In meinem Beispiel hatte ich es ja als private Feld FIniFile deklariert.
(der Präfix F für Felder ist natürlich nicht zwingend, aber üblich)
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Anfänger

Registriert seit: 24. Okt 2002
Ort: Hamburg
17 Beiträge
 
Delphi 4 Standard
 
#16
  Alt 26. Okt 2002, 14:19
Hallo Christian,

du hast Recht, bei mir wird die ini als string deklariert.
So sieht mein Bereich aus.
Frage bitte nicht nach Einzelheiten was für was steht, da ich die Sachen sozusagen zusammenkopiert und aus Foren mitgenommen habe.

public
{ Public-Deklarationen }
end;

var
Form1: TForm1;
IniFile : string;
IniUpDate: Boolean;

resourcestring
_rsLastAccess = 'LetzterZugriff';
_rsDate = 'Datum';
_rsTime = 'Zeit';

const
_asDays : array [1..7] of string = ('Sonntag','Montag','Dienstag','Mittwoch','Donners tag','Freitag','Samstag');


implementation
uses unit2;
{$R *.DFM}

Wenn ich jetzt aus dem Typ string ein TIniFile mache,
bekomme ich keine Fehlermeldung, aber ich die ini nicht mehr lesen und
auch nicht mehr reinschreiben
Vielleicht kannst du mir da noch mal helfen.
Gehört vielleicht zu den Grundlagen die mir noch fehlen, aber Literatur ist bestellt und unterwegs.

Vielen Dank
Anfänger
Anfänger aus HH
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#17
  Alt 26. Okt 2002, 14:39
Zitat von Anfänger:
Gehört vielleicht zu den Grundlagen die mir noch fehlen, aber Literatur ist bestellt und unterwegs.
Hallo Anfänger,

die beste Literatur ist immer noch die OH.
Diese ganzen Schinken für Delphi 6(Kochbuch, Grundlagen und Profiwissen, Nachschlagen und Verstehen, Delphi 6), sind nciht so das ware. Lerne lieber mit der OH zu arbeiten. Solange Du ncihts mit DB machst, langt die OH vollkommen. Und Foren gibt es ja auch noch. Spare Dir lieber das Geld.

Grüsse, DAniel
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#18
  Alt 26. Okt 2002, 14:52
Moin Anfänger,

schau Dir doch noch einmal an, wo ich in dem Beispiel Code das IniFile (TIniFile) deklariert habe.

Wenn Du das so übernimmst wird's auch funktionieren.

Wichtig:
Diese INI hat nichts mit Deiner Daten.dat zu tun.

Wie Du es gemacht hast, mit dem ständigen öffnen und schliessen der INI kann man es natürlich auch machen.
Mein Beispiel daran anzupassen ist auch nicht so schwierig, und dann kannst Du auch die Daten.dat dafür verwenden.

Versuch das einfach mal.

Was auch ganz hilfreich sein kann:
Im Einzelschritt durch das Programm gehen (F7/F8 ) und sich mal im ansehen, was denn so in welchen Variablen steht, um festzustellen, welche Funktion welche Auswirkungen hat.

Wie Du ja selber schon gemerkt hast:
Copy&Paste ist ja schön und gut, wenn's denn funktioniert, nutzt aber nichts für das Verständnis wie's funktioniert

Aber das Verständnis wird auch noch kommen.
Erst langsam, dann schneller.
Das schwierigste ist ja immer der Einstieg in neue Bereiche.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Anfänger

Registriert seit: 24. Okt 2002
Ort: Hamburg
17 Beiträge
 
Delphi 4 Standard
 
#19
  Alt 26. Okt 2002, 15:25
Hallo,

ich finde OH nicht so gut, liegt vielleicht auch am fehlenden Grundwissen.
Naja ich hoffe das ich mit den Buch was anfangen kann.
Am besten wäre ein Buch mit Beispielen und nicht so wie die OH.
Die setzt finde ich sc´hon mehr Grundwissen vorraus.

Von der F7/F8 habe ich schon gehört und gesehen, aber wenn ich damit durch Programm gehe, sehe ich zwar was gerade gemacht wird, aber was genau dahinter steckt ist für mich ein GROßES .

Aber es gibt ja auch noch das Forum hier und das ist gut so.

Gruß
Anfänger
Anfänger aus HH
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#20
  Alt 26. Okt 2002, 15:40
Zitat von Anfänger:
ich finde OH nicht so gut, liegt vielleicht auch am fehlenden Grundwissen.
Naja, mit ein bisschen überlegen, könnte mans ich das was man haben möchte auf Englisch übersetzen und damit in der OH suchen. Die OH ist im Vergleich zu diesen ganezn Büchern richtig und die Beispiele immer sinnvoll und nciht mit umständlichen Code beschrieben.

Zitat:
Von der F7/F8 habe ich schon gehört und gesehen, aber wenn ich damit durch Programm gehe, sehe ich zwar was gerade gemacht wird, aber was genau dahinter steckt ist für mich ein GROßES .
Dieses Zeilenweise durchgehen nennt man Debuggen. Sinnvoll wenn man z.B. Variablen hat.
Zum Bleistift eine for Schleife. Du gehst also mit F7 oder F8 die Schleife immer wieder durch. Wenn Du nun den Cursor über dem i hälst, nicht klickst, dann kannst Du sehen, welchen Wert i gerade hat. Das lässt sich auf vielen sachen anwenden.
Im Editor ist doch links so ein grauer Balken, wenn Du nun vor eine Zeile mit der Maus auf diesen Balken klickst, dann wird ein Breakpoint gesetzt. Ist so ein roter Punkt. Wenn Du nun das Programm mit F7/F8 startest, dann wird Dein Programm an diesem Punkt hängen bleiben. Je nach Code ist zu dem Zeitpunkt noch nciht einmal ein Formular zu sehen. Jetzt kannst DU mit F7 oder F8 immer Zeile- oder Prozedurenweise Schritt für Schritt was abarbeiten lassen, da kann man nun die Maus über Variablen o.ä. drüber halten und sehen was sie gerade für einen Wert haben.

Grüsse, Daniel
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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:05 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