Einzelnen Beitrag anzeigen

Benutzerbild von Jan
Jan

Registriert seit: 24. Sep 2002
Ort: Magdeburg
491 Beiträge
 
Delphi 7 Enterprise
 
#18
  Alt 16. Okt 2002, 19:14
Hallo alle,
ich bins mal wieder.
hab immernoch Probleme bei diesem Programm, nachdem ich leider eine weile wegen anderer Beschäftigungen nicht weiterprogrammieren konnte.
ich habe jetzt alles so programmiert wie ich meine es müsste doch alles funktionieren, aber wie es bei mir üblich ist tut es das natürlich... nicht! Also, zu meinem problem: Wer die vorherigen posts gelesen hat, der weiß worum es in meinem Programm geht. Ich habe jetzt eine procedur geschrieben um die kranktage auszulesen, und eine um sie zu speichern:

Auslesen:
Code:
Procedure tform2.tageauslesen(id:integer);
var y,x,z:integer;
begin
   form2.Show;
   form2.memo1.clear;
   x:=0;
   z:=udaten.DateiEnde;
   for y:=0 to z-1 do begin
     udaten.lesen(y);
     if udaten.Karte.Person=id then begin
       form2.memo1.lines[x]:=udaten.karte.von + udaten.karte.bis;
       x:=x+1;
     end;
   end;
end;
schreiben:
Code:
procedure TForm2.Button1Click(Sender: TObject);
begin
//DateSeparator := '-';
//ShortDateFormat := 'm/d/yyyy';
udaten.Karte.Person:=anderedaten.lesepos;
//udaten.Karte.von:=strtodate(form2.Edit1.Text);
//udaten.Karte.bis:=strtodate(form2.Edit2.Text);
udaten.Karte.von:=form2.edit1.text;
udaten.Karte.bis:=form2.edit2.text;
udaten.schreiben;
end;
(ich habe vorerst nicht den date-typ verwandt, sondern mich auf srings beschränkt um erstml damit fertig zu werden.)

so, dann noch die verwendeten proceduren/funktionen:
udaten.dateiende:
Code:
function tDatenobjekt.DateiEnde:integer;
var f:File of tUrlaub;
begin
        Datei:='c:\urlaub.ddb';
        assign(f,Datei);
        if not fileexists('c:\Urlaub.ddb') then begin
        rewrite(f);
        close(f);
        end;
        reset(f);
        Dateiende:=filesize(f);
        close(f);
end;
udaten.lesen:
Code:
Procedure Tdatenobjekt.lesen(stelle:integer);
var f:File of tUrlaub;
begin
        Datei:='c:\urlaub.ddb';
        assign(f,Datei);
        reset(f);
        seek(f,stelle);
        read(f,Karte);
        close(f);
end;
udaten.schreiben:
Code:
procedure tdatenobjekt.schreiben;
var f : file of tUrlaub;
begin
        ps:=DateiEnde;
        Datei:='c:\urlaub.ddb';
        assign(f,Datei);
        reset(f);
        seek(f,ps);
        write(f,Karte);
        close(f);
end;
so, ich hoffe, dass da nicht an wichtigem code zum Beheben meiner Fehler fehlt.
nun zumn auftretenden Problem:
Anstatt zu der jeweils aufgerufenen Person alle abgespeicherten strings auszugeben wird nur zu der 1. Person, zu der ich etwas abgespeichert habe der 1. Eintrag ausgegeben, nicht mehr und nicht weniger.
habe ich da etwas mit den indexen falsch gemacht?
was mir aufgefallen ist: wenn ich die typisierte Datei öffne, in welcher die Kranktage abgespeichert werden, so finde ich die date-strings alle korrekt abgespeichert, nur die zahl des users, zu welchem diese daten gehören wird nicht abgespeichert, stattdessen steht ein "gh" hinter dem 1. datum eines jeden Eintrags, kann das irgendetwas damit zu tun haben?
Nun ja, ich stehe vor einem Rätsel und vorallem Termindruck *auweia*. Naja, hoping 4 Help.
euer
Jan
Jan
Wenn die Sonne der Kultur tief steht, werfen auch kleine Gestalten lange Schatten.
  Mit Zitat antworten Zitat