010
05.11.2002, 17:00 Uhr
Tobi
|
MFC-typisch wäre es wenn du das ganze mif CFile bearbeitest! Aber warum willst du das machen wenn du einen vorgefertigten C-Code hast? Oder meinst du das ganze in ne Klasse einfügen?
C++: |
bool CMeinDialog::GetBlock(const char* file_in,const char* file_out, int blockanf, int blockend) { FILE *in, *out;
int l; char ch, *chptr;
/* Die angegebenen Dateien öffnen */ if ((in=fopen(file_in, "rb")) == NULL) { MessageBox("Datei kann nicht geöffnet werden"); return false; }
if ((out=fopen(file_out, "wb")) == NULL) { MessageBox("Datei kann nicht geöffnet werden"); return false; }
/* Variablen initialisieren */ l=0; chptr=&ch; /* Weil fread, bzw. fwrite einen Zeiger erwarten, wird hier ein Zeiger auf den char zugewiesen. */
/* Überlese den Inhalt der Datei, bis der zu kopierende Block erreicht ist */ while (l < blockanf) { fread(chptr, 1, 1, in); // Ein Byte aus der Eingabedatei lesen ++l; // und Zähler erhöhen } /* while-Schleife */
/* An dieser Stelle ist l==blockanf, d.h. so gross wie die Startadresse. Deshalb wird ab jetzt kopiert, bis l den Wert von blockend erreicht hat. */ while (l <= blockend) { fread(chptr, 1, 1, in); // Ein Byte aus der Eingabedatei lesen, fwrite(chptr, 1, 1, out); // in Ausgabedatei schreiben ++l; // und Zähler erhöhen } /* while-Schleife */
/* Wenn wir alle Bytes kopiert haben, müssen wir die Dateien wieder schliessen, und sind fertig. */ fclose (in); fclose (out);
return true; }
|
-- Mit Computern können wir Probleme lösen die wir ohne sie gar nicht erst hätten!
mfg
Tobi |