Das Problem ist, ich bin in der Mitte einer Datei mit fseek
Next existiert einige Bytes der Länge m
, die ich mit Bytes der Länge n
ersetzen möchte. einfach write
wird m-n
Bytes noch da bleiben. Wenn m > n
und wenn m < n
werden einige Bytes (n-m
), die ich nicht bereit bin zu ändern, überschrieben werden.in der Mitte einer Datei überschreiben
Ich möchte nur eine bekannte startPos to endPos
Byte Stream mit variabler Länge Bytes ersetzen. Was ist die beste Lösung?
- EDIT - Obwohl es durch ein Backup durchgeführt werden kann. Gibt es eine direkte Lösung? Das ist zu chaotisch? und Art der schlechten Codierung.
o = fopen(original, 'r')
b = fopen(backup, 'w')
while(fpos(o) <= startPos){
buffer += fgetc(o)
}
fwrite(b, buffer)
fwrite(b, replaceMentBytes)
buffer = ""
fseek(o, endPos)
while(!feof(o)){
buffer += fgetc(o)
}
fwrite(b, buffer)
// jetzt Copy Sicherung Original
Die Datei neu schreiben. –
@ user256007, denke ich, dass Ihre Interpunktionen und einige Buchstaben Großschreibung für mich rätselhaft sind. –
Siehe http://blogs.msdn.com/b/oldnewthing/archive/2010/12/01/10097859.aspx – MSalters