Autor Beitrag
luckyluc
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 103



BeitragVerfasst: Mi 21.10.09 20:28 
hallo
ich bräuchte mal wieder eure Hilfe. Im Anhang findet ihr den entsprechenden Quelltext.
Beim Löschen-Button fkt. das Löschen immer nur in der ersten zeile nicht in den darauffolgenden. warum?
und beim button zum hinzufügen eines datensatzes passiert nichts.
danke im voraus
Einloggen, um Attachments anzusehen!


Zuletzt bearbeitet von luckyluc am Do 22.10.09 19:03, insgesamt 2-mal bearbeitet
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: Mi 21.10.09 21:54 
hier nochmal für jene die nicht extra ne datei runterladen wollen. ;)

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:
procedure TForm1.btn_loeschenClick(Sender: TObject);
var
i: integer;
pos: integer;
begin
  i:= 1;
  pos := FilePos(datei);
  while not eof(datei) do begin
    read(datei,person);
    seek(datei,FilePos(datei)-2);
    write(datei,person);
    read(datei,person);
  end;
  seek(datei,FilePos(datei)-1);
  Truncate(datei);
  seek(datei,pos);
   repeat
    begin
     StringGrid1.Cells [1,i] := Person.Vorname;
     StringGrid1.Cells [2,i] := Person.Nachname;
     inc(i);
   end;
  until eof (datei);
end;


ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
procedure TForm1.btn_hinzufuegenClick(Sender: TObject);
var
i: integer;
begin
 i:= 1;
  repeat
   Person.Vorname:= StringGrid1.Cells [1,i] ;
   Person.Nachname:= StringGrid1.Cells [2,i] ;
   WRITE(datei, person);
   inc (i);
  until eof (datei);
  seek(datei,FileSize(datei));
  write(datei,person);
end;

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



BeitragVerfasst: Do 22.10.09 11:54 
liegt das beim löschen vielleicht an der repeat-schleife? denn wenn ich z.b. until i=100 (oder so) setze, dann löscht er alles
beim hinzufügen: das write muss aus der schleife raus oder?
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19341
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 23.10.09 08:15 
Erstens solltest du die Dateivariable lokal deklarieren und nicht global. Dann kannst du die Datei auch an der Stelle öffnen und schließen. So wie du es jetzt hast, benutzt du beim Schreiben einfach die im Moment gesetzte Dateiposition.

Und dann schreibst du bis das Ende der Datei erreicht ist. Warum? Willst du nicht eher solange schreiben wie Datensätze vorhanden sind und das vom Start der Datei aus?

Zudem schreibst du person am Ende doppelt, denn nach der letzten Zuweisung in der Schleife wird dort bereits geschrieben und dann schreibst du danach noch einmal denselben Datensatz.
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10184
Erhaltene Danke: 1259

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Fr 23.10.09 15:28 
Moin!

Bitte ändere den Titel des Topics, da er wenig über das eigentlich Thema verrät. Hier der entsprechende Absatz aus den Richtlinien:
1.2 Beiträge:
Bitte formuliere den Betreff Deiner Beiträge so, dass andere Mitglieder anhand dieser bereits das eigentliche Thema festmachen können. Beiträge wie etwa "Eine Anfängerfrage" oder "Weiß jemand, wie das geht?" lassen den Leser im Unklaren darüber, was das Thema der Diskussion ist.[...]

Einfach oben bei Deinem ersten Beitrag auf user defined image oder user defined image klicken und den Titel ändern. Danke Dir!

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
Dude566
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1592
Erhaltene Danke: 79

W8, W7 (Chrome, FF, IE)
Delphi XE2 Pro, Eclipse Juno, VS2012
BeitragVerfasst: Fr 23.10.09 16:07 
Bei dem Threadtitel dachte ich schon ich wäre auf der Seite von 9Live gelandet. :D

_________________
Es gibt 10 Gruppen von Menschen: diejenigen, die das Binärsystem verstehen, und die anderen.