Hallo,
ich habe zusammen mit einem Freund ein Programm zum Auslesen von ASE(3D ASCII Format) Datein geschrieben. Ansich funktioniert das Programm auch recht schnell.
In einem ersten Schritt entferne ich alle
Tabstops und ersetze sie durch Leerzeichen und in einem zweiten entferne ich alle mehrfachen
Leerzeichen.
<pre>
FILE *in = fopen(ins, "rb");
FILE *out = fopen(outs, "wb");
static long fs = fGetFileSize(in);
static short int ls=0, ts;
static int linecount=0;
for (long h=0; h<fs; h++) {
ts = fgetc(in);
if (ts == 9) ts=32;
if (ts != 32 || ls != ts) fputc(ts, out);
if (ts == 10) linecount++;
ls = ts;
}
fclose(out);
fclose(in);
</pre>
Jetzt meine Frage:
gibt es eine Möglichkeit das hganze noch zu beschleunigen? Es dauert mit einer 30MB Datei ca 6 bis 8 Sekunden.
mfg.: Andre´
ich habe zusammen mit einem Freund ein Programm zum Auslesen von ASE(3D ASCII Format) Datein geschrieben. Ansich funktioniert das Programm auch recht schnell.
In einem ersten Schritt entferne ich alle
Tabstops und ersetze sie durch Leerzeichen und in einem zweiten entferne ich alle mehrfachen
Leerzeichen.
<pre>
FILE *in = fopen(ins, "rb");
FILE *out = fopen(outs, "wb");
static long fs = fGetFileSize(in);
static short int ls=0, ts;
static int linecount=0;
for (long h=0; h<fs; h++) {
ts = fgetc(in);
if (ts == 9) ts=32;
if (ts != 32 || ls != ts) fputc(ts, out);
if (ts == 10) linecount++;
ls = ts;
}
fclose(out);
fclose(in);
</pre>
Jetzt meine Frage:
gibt es eine Möglichkeit das hganze noch zu beschleunigen? Es dauert mit einer 30MB Datei ca 6 bis 8 Sekunden.
mfg.: Andre´
Comment