AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Datensatz aus einer Typisierten Datei löschen
Thema durchsuchen
Ansicht
Themen-Optionen

Datensatz aus einer Typisierten Datei löschen

Ein Thema von Master_BB · begonnen am 7. Jun 2003 · letzter Beitrag vom 9. Jun 2003
Antwort Antwort
Master_BB

Registriert seit: 17. Mai 2003
285 Beiträge
 
Delphi 7 Professional
 
#1

Datensatz aus einer Typisierten Datei löschen

  Alt 7. Jun 2003, 19:45
Hya,
hab zur zeit das prob das ich keinen bestimmten datensatz aus meiner Typisierten datei löschen kann.
Theoretisch müßte es so

Code:
  i:=1;
  while not eof(pf) do
   begin
    Read(pf, buffer[i]);
    i := i+1;
   end;
  delete := StrToInt(Label9.Caption);
  for i := delete-1 to filesize(pf) do begin
   buffer[i] := buffer[i+1];
  end;
  truncate(pf);
gehn läuft aber net. da macht er garnix.
obwohl er was machn müßte dadurch das der zu löschenende DS vom i+1sten überschrieben wird und alles rückt nach und das ende wird abgeschnippelt.
Kann mir mal jemand helfen?
bei meinem TP programm lief es so in etwa

[edit=MrSpock]Verschoben[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#2
  Alt 7. Jun 2003, 20:18
Hallo Master_BB,

du überschreibst ja nur den Puffer im Speicher! Du musst an die Stelle gehen, ab der du überschreiben willst und dann mit:

write(pf, buffer[i+1]); die Daten in die Datei schreiben. Das Ganze natürlich in einer Schleife.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Master_BB

Registriert seit: 17. Mai 2003
285 Beiträge
 
Delphi 7 Professional
 
#3
  Alt 9. Jun 2003, 10:36
ich kriegs nicht hin kann mir nicht mal jemand
den fertigen löschen code hinschreiben?
  Mit Zitat antworten Zitat
Master_BB

Registriert seit: 17. Mai 2003
285 Beiträge
 
Delphi 7 Professional
 
#4
  Alt 9. Jun 2003, 23:34
so habs jetzt selber gelöst
und nach 2 stunden hirnzermatern hatt ichs, fals es nochjemand benötigt
hier der code

zur erklärung
z ist ein array des Datensatz Records
Label3 ist der gerade angezeigte datensatz 1,2 oder so
jo der rest ist klar

Delphi-Quellcode:
    seek(f,0);
     for i:=1 to filesize(f) do
      begin
       read(f,z[i]);
      end;
    delete := StrToInt(Label3.Caption);
    seek(f,0);
    e := 0;
    for i := 1 to delete-1 do //vor löschen ds add
     begin
      Write(f,z[i]);
      e := e+1;
     end;
    seek(f,e);
    for i := delete+1 to filesize(f) do //nach löschen ds add
     begin
      Write(f,z[i]);
     end;
    seek(f,filesize(f)-1);
    truncate(f); //dateiende abschnippeln
[edit=MrSpock]Center Tag durch Code Tags ersetzt.[/edit]
  Mit Zitat antworten Zitat
Antwort Antwort


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 19:57 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