Autor Beitrag
bfelix
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 61

WIN 2000 Prof., Win XP Prof., Win 7 Starter und Prof., SuSe Linux 11.3,
Delphi 7 Pers.
BeitragVerfasst: So 20.02.11 18:55 
Hallo Community,
in einem Programm will ich mit
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
SetLength(buffer, FileSize(userfile)-userid1);
   for i:=(userid1+1to (FileSize(userfile)-1do begin
   Seek(userfile, userid1);
   Read(userfile, buffer[i]);
   end;
   for u:=(userid1+1to (FileSize(userfile)-1)do begin
   Seek(userfile, u-1);
   Write(userfile, buffer[u]);
   end;

einen Datensatz aus einer typisierten Datei entfernen. Allerdings existiert der Datensatz danach auch noch. Woran liegt da das Problem?

LG und Danke,
BFelix
TomasB
Hält's aus hier
Beiträge: 5

Win98SE
Delphi5 Standard
BeitragVerfasst: Do 24.02.11 21:13 
Hallo,

ich weiss nicht, ob die folgende Überlegung hilft, es hilft, aber mir ist die Bedeutung von userid1 nicht ganz klar. Ist es

- die Datensatznummer? Dann müsste es beim Aufruf von Setlength mit der Größe des Datensatzes multipliziert werden (ich gehe davon aus, daß alle Datensätze die gleiche Größe haben)

- oder ist es die Adresse eines Bytes in der Datei? Dann müsste im Aufruf von Seek mit der Datensatzgröße multipliziert werden, wenn es sich um eine untipysierte Datei handelt (bei echten typisierten Dateien macht das Delphi automatisch)

Wird die Datei richtig geöffnet? Wenn man keine Datensatzgröße angibt, wird bei einigen Dateitypen ein Defaultwert von 256(?) angenommen (siehe Hilfe zu Rewrite und Reset). Kann es im Moment nicht selbst nachsehen.

Sicher, daß die Datei völlig unverändert ist? Ich denke, es fehlt ein Stück, nur woanders. Wichtig wäre auch zu wissen, wie die Datei vereinbart und geöffnet wird.

Gruß
Tomas

Moderiert von user profile iconNarses: Überflüssige Zeilenumbrüche/Leerzeilen entfernt.