AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Erkennungszeit von unlesbaren Bytes verkürzen?
Thema durchsuchen
Ansicht
Themen-Optionen

Erkennungszeit von unlesbaren Bytes verkürzen?

Ein Thema von Kernel32.DLL · begonnen am 20. Jun 2004 · letzter Beitrag vom 24. Jun 2004
 
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#5

Re: Erkennungszeit von unlesbaren Bytes verkürzen?

  Alt 22. Jun 2004, 13:17
Zitat von Kernel32.DLL:
Mein Problem ist, dass ich ein Programm schreibe, welches bei fehlerhaften Dateien (z.B. zerkratzte CD) im Gegensatz zum Windows Explorer den Kopiervorgang nicht sofort abbricht, sondern stur weiterkopiert und die unlesbaren Bytes einfach durch "0" ersetzt.
... dass es ziemlich lange dauert, bis das Programm den Dateizeiger bei einem fehlerhaften Block um 2048 Bytes weitersetzt.
Kann man diese Zeit irgendwie reduzieren?
P.S.: Zum Auslesen benutze ich BlockRead/BlockWrite
Zum Lesen und Schreiben von Dateien gibt es versch. Funktionen, die sich durch unterschiedliche
"Nähe" zum Betriebssystem unterscheiden.
Man kann diese Arten als "highlevel" (weit weg vom OS), "lowlevel" (nahe dran am OS) und
"devicelevel" (direkter Zugriff auf Platte, CD-ROM; Umgehung des Filesystems) unterscheiden.

Die Arbeit mit AssignFile, BlockRead, CloseFile ist "highlevel" und ausserdem gepuffert.
Dagegen ist das Arbeiten mit TFileStream ist ungepuffert (der Cache des Betriebssystems ist aber dennoch wirksam) und näher am Betriebssystem.
Direkt am Betriebssystem sind die Windows API Funktionen CreateFile, ReadFile, CloseHandle.
Je näher du am Betriebssystem ansetzt, desto weniger Overhead ist enthalten und desto schwieriger
wird die Programmierung.

Andererseits wäre es möglich, dass man die Anzahl der Leseversuche irgendwo einstellen kann.
Du kannst ja mal die Forschung in Richtung: DeviceIoControl(hDevice, IOCTL_CHANGER_GET_PARAMETERS,..) richten.
Andreas
  Mit Zitat antworten Zitat
 


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 16:26 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz