zeichen in einer txt-datei löschen
-
hi leute...
habe folgenden code, der mir werte in eine txt-datei ausgibt, die dann noch weiter verarbeitet werden.void ausgeben (int a[max][max],int b[max][max],int wahl){ FILE *fr; FILE *fg; FILE *fb; int i,j; fr = fopen("ihrkegar.txt","wt"); fg = fopen("ihrkegag.txt","wt"); fb = fopen("ihrkegab.txt","wt"); fprintf(fr,"pointplot({"); fprintf(fg,"pointplot({"); fprintf(fb,"pointplot({"); for(i=0;i<max;i++){ for(j=0;j<max;j++){ if ((a[i][j])==1) fprintf(fr,"[%d,%d],",i,j); if ((a[i][j])==2) fprintf(fg,"[%d,%d],",i,j); if ((a[i][j])==3) fprintf(fb,"[%d,%d],",i,j); } } for(i=0;i<max;i++){ for(j=0;j<max;j++){ if ((b[i][j])==1) fprintf(fr,"[%d,%d],",i,j); if ((b[i][j])==1) fprintf(fg,"[%d,%d],",i,j); if ((b[i][j])==1) fprintf(fb,"[%d,%d],",i,j); } } fprintf(fr,"}, color=red);"); fprintf(fg,"}, color=green);"); fprintf(fb,"}, color=blue);"); fclose(fr); fclose(fg); fclose(fb); }
dabei werden die werte in [x,y] ausgegeben, danach folgt ein komma. dieses komma taucht auch bei dem letzten wert auf, der in die datei geschrieben wird, das macht probleme.
deswegen will ich dieses letzte komma in der txt datei löschen. alternativ kann ich den code um einige zeilen ergänzen und das komma vor die [x,y]-ausgabe setzen, dann müsste ich den ersten [x,y]-wert ausserhalb der schleife in die textdatei einfügen, das bedeutet aber ca 20 zeilen mehr code, auf die ich gerne verzichten würde...
also?! wer hat ne elegantere idee, bzw. den befehl, ein zeichen in einer txt-datei zu löschen??
thx, KB
-
Also ich weiß keine elegantere Lösung, als ein paar Zeilen Code noch hinzuzufügen wie du beschrieben hast. Ich schätze es wird auch keine elegantere Lösung geben. Das Löschen eines Zeichens aus einer Datei ist viel aufwendiger als die richtige Reihenfolge für deine Kommaausgabe zu programmieren.
-
solche Dinge mache ich immer nach folgenden Muster (Pseudocode):
string trennzeichen=""; for (int i=0; i<Count;i++) { printf(trennzeichen); printf(wert); trennzeichen=","; }
Dann paßt die Ausgabe auch, wenn es nur einen Wert gibt, und das Trennzeichen steht an der richtigen Stelle, du mußt nichts mehr löschen.