AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Teile einer Datei löschen

Ein Thema von ErazerZ · begonnen am 14. Mai 2006 · letzter Beitrag vom 15. Mai 2006
Antwort Antwort
Benutzerbild von ErazerZ
ErazerZ

Registriert seit: 27. Mai 2005
Ort: Baden
315 Beiträge
 
Delphi 2007 Enterprise
 
#1

Teile einer Datei löschen

  Alt 14. Mai 2006, 07:57
hey Leute,
ich hab da eine Frage und zwar sagen wir ich hab da eine Normale Datei die ist 1 MB groß, die möchte ich "trennen" also den Teil von 0,8 kopieren und 0,9 - 1,0 kopieren, also den teil zwischen 0,8 - 0,9MB entfernen, nun ja das wäre leicht mit ReadFile, WriteFile, jedoch wollt ich wissen obs ne andere möglichkeit gibt wenn ich die datei gemappt habe in den speicher
und noch eine frage bezüglich das, wie kann man Daten in einer Datei einfügen, nicht überschreiben, also obs einfacher geht anstatt alles zuerst kopieren und dann wieder beschreiben usw
(Die Datei ist gemappt im Speicher)

cya, ErazerZ
  Mit Zitat antworten Zitat
DevilsCamp
(Gast)

n/a Beiträge
 
#2

Re: Teile einer Datei löschen

  Alt 14. Mai 2006, 08:11
Zitat von ErazerZ:
hey Leute,
und noch eine frage bezüglich das, wie kann man Daten in einer Datei einfügen, nicht überschreiben, also obs einfacher geht anstatt alles zuerst kopieren und dann wieder beschreiben usw
(Die Datei ist gemappt im Speicher)

cya, ErazerZ
EIgentlich sollte dafür ein eigener Thread aufgemacht werden (hat ja nichts mit der Thread-Übersicht zu tun).
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#3

Re: Teile einer Datei löschen

  Alt 14. Mai 2006, 12:14
Zitat von ErazerZ:
jedoch wollt ich wissen obs ne andere möglichkeit gibt wenn ich die datei gemappt habe in den speicher
Anders ist das dann auch nur insofern, daß du eben mit "Speicher" hantierst statt direkt mit den Datei-APIs rumzufummeln.

Zitat von ErazerZ:
und noch eine frage bezüglich das, wie kann man Daten in einer Datei einfügen, nicht überschreiben, also obs einfacher geht anstatt alles zuerst kopieren und dann wieder beschreiben usw
(Die Datei ist gemappt im Speicher)
Wüßte ich nicht. Du wirst schon zuerst den Block vor dem du etwas einfügen willst verschieben müssen und danach in den freigewordenen Platz deine neuen Daten schreiben. Aber sei dir versichert, wenn es effektiver geht, dann erledigt das das Dateisystem bereits für dich
  Mit Zitat antworten Zitat
Benutzerbild von ErazerZ
ErazerZ

Registriert seit: 27. Mai 2005
Ort: Baden
315 Beiträge
 
Delphi 2007 Enterprise
 
#4

Re: Teile einer Datei löschen

  Alt 15. Mai 2006, 15:42
ich meinte zb.
ich reserviere 1024 Bytes für eine Datei im speicher (wird gemappt und somit im speicher geladen wo ich sie bearbeiten kann), dann will ich jedoch an der stelle 512 - 10 bytes einfügen, also wird die neue dateigröße 1034, nun ja, da müsste man zuerst alle daten ab 512 in einem anderen pointer sichern und dannach die alten daten (ab position 512) mit den neuen 10bytes überschreiben und dann nochmals die alten daten aus dem gesicherten pointer ab stelle 522 schreiben - nun ja kompliziert ist das nicht wirklich, nur wie tut man speicher "neu reservieren" (also einfach verlängern oder verkürzen) die mittels MapViewOfFile gemappt wurde
hoffentlich hab ich mich jetzt einwenig besser ausgedrückt
  Mit Zitat antworten Zitat
franktron

Registriert seit: 11. Nov 2003
Ort: Oldenburg
1.446 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#5

Re: Teile einer Datei löschen

  Alt 15. Mai 2006, 16:13
Wenn ich das richtig verstanden hab dann nimm doch einfach TFileStream
Frank
Tux sein Lieblingsquellcode
While anzfische<TuxSatt do begin
Fisch:=TFisch.Create; Tux.EssenFisch(Fisch); Fisch.Free;inc(anzfische); end;
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.139 Beiträge
 
Delphi 12 Athens
 
#6

Re: Teile einer Datei löschen

  Alt 15. Mai 2006, 16:16
Der Teil wie man das bei einer gemappten Datei macht, würde mich och ma interessieren (kommt wohl bald auf mich zu -.-'')
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von ErazerZ
ErazerZ

Registriert seit: 27. Mai 2005
Ort: Baden
315 Beiträge
 
Delphi 2007 Enterprise
 
#7

Re: Teile einer Datei löschen

  Alt 15. Mai 2006, 16:50
Zitat von franktron:
Wenn ich das richtig verstanden hab dann nimm doch einfach TFileStream
das will ich ja vermeiden, auf der festplatte zu schreiben, ich wills direkt im speicher verändern und dann auf der disk ablegen - weil das wird dann noch zu kompliziert (ein teil im speicher, einen auf der disk usw.)
  Mit Zitat antworten Zitat
Klaus01
Online

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#8

Re: Teile einer Datei löschen

  Alt 15. Mai 2006, 16:56
Wenn Du es eh abspeichern willst, kannst
Du dann nicht mit BlockWrite einen Buffer von 512Byte in die
Datei schreiben, dann einen Block von 10Byte und zum Schluß
noch die restlichen 512Byte.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
franktron

Registriert seit: 11. Nov 2003
Ort: Oldenburg
1.446 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#9

Re: Teile einer Datei löschen

  Alt 15. Mai 2006, 18:45
Dann nim TMemoryStream
Frank
Tux sein Lieblingsquellcode
While anzfische<TuxSatt do begin
Fisch:=TFisch.Create; Tux.EssenFisch(Fisch); Fisch.Free;inc(anzfische); end;
  Mit Zitat antworten Zitat
Benutzerbild von ErazerZ
ErazerZ

Registriert seit: 27. Mai 2005
Ort: Baden
315 Beiträge
 
Delphi 2007 Enterprise
 
#10

Re: Teile einer Datei löschen

  Alt 15. Mai 2006, 18:58
Zitat von franktron:
Dann nim TMemoryStream
ja wenn das mit Mapped Files nicht geht dann nehm ich eh das - danke, hab garnicht daran gedacht
  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 20:15 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