Programmierung » ClassPad 300 » AddIn » MCS-Dateien schreiben

MCS-Dateien schreiben

Für das Schreiben in MCS-Dateien gibt es die Klasse CPWriteMCSFile. Doch der Gebrauch dieser Klasse ist etwas umständlich. Damit die Daten richtig geschrieben werden, muß die Größe beim öffnen angegeben werden. Dann ist da noch die eigenartige Handhabung:
Es wird (logisch) gesehen zweimal geschrieben. Beim ersten Mal wird der benötigte Platz erhöht und danach erst geschrieben.

char *daten;
//...
CPWriteMCSFile *f = new CPWriteMCSFile("name", "ordner");
f->Open(1, 100); // zum schrieben öffnen (1), es werden 100 bytes geschrieben
//...
f->WriteBytes(NULL, 100); // den Platz berechnen
f->Realize(); // umschalten
f->WriteBytes(daten, 100); // eigentlicher Schreibvorgang
//...

Da das echt Umständlich ist, habe ich mir einen Puffer geschrieben, der die Daten zwischenspeichert:

char *daten;
//...
ZWriteBuffer *buffer = new ZWriteBuffer();
//...
buffer->WriteBytes(daten, 100); // es wird in den Puffer geschrieben
//...
CPWriteMCSFile *f = new CPWriteMCSFile("name", "ordner");
f->Open(1, (int)buffer->getCount()); // es wird der gesamte Puffer mit einmal geschrieben
f->WriteBytes(NULL, (int)buffer->getCount()); // den Platz berechnen
f->Realize(); // umschalten
f->WriteBytes((int)buffer->getBuffer(), (int)buffer->getCount()); // eigentlicher Schreibvorgang
//...

Die Funktionen im Puffer heißen wie in der Klasse CPWriteMCSFile. Der Puffer vergrö&zslig;ert sich automatisch beim schreiben. Es wird bis jetzt jedoch nur WriteByte und WriteBytes unterstüzt.


Vorab-Version (0.9) des Puffers