Gelöscht?

Anfängerfragen zum Programmieren mit PureBasic.
xperience2003
Beiträge: 972
Registriert: 04.10.2004 18:42
Computerausstattung: Amiga, LinuxMint, Windows7
Wohnort: gotha
Kontaktdaten:

Beitrag von xperience2003 »

jo, so gehts auch, damit is die datei ueberschrieben
zwar nicht komplett geloescht..braucht man dann aber auch nich mehr
amiga rulez...
Rebirth Software
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

wenn ich eine datei mit nullen überschreibe, auch mehrfach,
dann verändere ich nicht den schatten der alten information,
sondern flache den nur ab.

wenn ich hingegen zufallswerte drüberschreibe,
ändere ich mehrfach das aufgebrachte magnetische potential,
das sollte bei mehrfacher anwendung den alten schatten unleserlich machen.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Wenn ich die Datei öffne und überschreibe, überschreibe ich nur den Buffer,
beim schliessen wird dann aber ganz woanders geschrieben, als dort wo die
Datei beim öffnen war. Selbst nach 100x überschreiben wird sich das orginal
noch unangetastet auf der Platte befinden, nur nicht mehr per Filetable
erreichbar, physicalisch aber vorhanden.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

ok, das war jetzt meine fehlannahme.
man muss natürlich an die physikalisch selbe stelle herankommen.

trotzdem: zufallszahlen sind wirkungsvoller als nullen.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Little John

Beitrag von Little John »

ts-soft hat geschrieben:Wenn ich die Datei öffne und überschreibe, überschreibe ich nur den Buffer,
beim schliessen wird dann aber ganz woanders geschrieben, als dort wo die
Datei beim öffnen war.
Die Einzelheiten hängen ja auch vom verwendeten Betriebssystem ab. Deshalb emfehle ich wenn's wirklich wichtig ist für solche Dinge Tools von Leuten, von denen bekannt ist dass sie sich damit gut auskennen, für Windows z.B. http://technet.microsoft.com/en-us/sysi ... 97443.aspx

Gruß, Little John
Benutzeravatar
DrNo
Beiträge: 202
Registriert: 09.05.2008 15:20
Wohnort: BW, Deutschland
Kontaktdaten:

Beitrag von DrNo »

Nochmal zurück zu meiner Frage...falls ihr die durch die vielen posts übersehn habt.

Mir geht es im Moment nur darum wie ich die Schleife stoppe wenn die Datei voll ist...also damit meine ich ihre originalgröße wieder hat.

Little John hat geschrieben:Deshalb emfehle ich wenn's wirklich wichtig ist für solche Dinge Tools von Leuten, von denen bekannt ist dass sie sich damit gut auskennen, für Windows z.B. http://technet.microsoft.com/en-us/sysi ... 97443.aspx
Das funzt bei mir garnich
:?
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

EOF(#FILE)
Beispiel befindet sich in der Hilfe unter ReadFile
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

vor dem schreiben mit Lof(#File) die Länge ermitteln,
dann weisst du, wieviel bytes du insgesamt schreiben musst.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Little John

Beitrag von Little John »

DrNo hat geschrieben:
Little John hat geschrieben:Deshalb emfehle ich wenn's wirklich wichtig ist für solche Dinge Tools von Leuten, von denen bekannt ist dass sie sich damit gut auskennen, für Windows z.B. http://technet.microsoft.com/en-us/sysi ... 97443.aspx
Das funzt bei mir garnich
:?
Sysinternals hat geschrieben:SDelete works on Windows 95, 98, NT 4.0 and Win2K.
"Sysinternals" war halt eine Quelle, die ich gerade so aus dem Kopf wusste. Es gibt andere gute Freeware für andere Windows-Versionen.
DrNo hat geschrieben:Nochmal zurück zu meiner Frage...falls ihr die durch die vielen posts übersehn habt.

Mir geht es im Moment nur darum wie ich die Schleife stoppe wenn die Datei voll ist...also damit meine ich ihre originalgröße wieder hat.
Wie KG schon schrieb: Erst die Länge ermitteln, und dann genau so viele Bytes schreiben. Aber damit ist die Datei nicht wirklich sicher gelöscht -- was ja Deine Ursprungsfrage war.

Gruß, Little John
Benutzeravatar
DrNo
Beiträge: 202
Registriert: 09.05.2008 15:20
Wohnort: BW, Deutschland
Kontaktdaten:

Beitrag von DrNo »

Ok nach einigem Rumprobieren hab ich es schliesslich mit Variablen gemacht. er ermittelt die größe als Variable und tut bei jedem Überschreiben +2 (WriteWord = 2Bytes) hinzuzählen bis die größe der Variable erreicht ist. So klappt es bei mir auch und bei Textdateien ist dann auch der exakt beschriebene bereich überschrieben. Was haltet ihr von dem Code?

Code: Alles auswählen

file$ = OpenFileRequester("Datei auswählen...","","Alle Dateien (*.*)",0)
  If file$
    If ReadFile(0, file$) 
      length = Lof(0)                           
      *MemoryID = AllocateMemory(length)         
      If *MemoryID
        bytes = ReadData(0, *MemoryID, length)   ;
      EndIf
      CloseFile(0)
      If OpenFile(0, file$)
        Repeat
         WriteWord(0, Random($FFFF))
         a + 2 
        Until a = bytes
         CloseFile(0)
         MessageRequester("Info", "Datei erfolgreich überschrieben!")
      EndIf
    EndIf
  EndIf
Ist warscheinlich noch verbesserungsfähig.
Mit dem Anzahl der überschreibungen werde ich es wie oben mit Variablen machen bis der Wert des SpinGadgets erreicht ist.

grüße DrNo <)
Antworten