000
24.05.2005, 22:17 Uhr
etech
|
hallo miteinander,
habe folgendes Problem : wegen einer Druckdatei eines Matrixdruckers für ein SCO Unix, verspringt der Drucker immer an einer bestimmten Stelle...
Habe mir jetzt ein kleines Skript gecodet, um diese Datei einzulesen, zu bearbeiten und wieder zu schreiben..
Wie kann ich jetzt an einer bestimmten Zeilennummer (zähle Sie ja mit), zwei Zeilen weniger schreiben und dies an einer anderen Stelle wieder einfügen ?
Ich führe das Prog in dem Verzeichniss aus, in dem die Datei liegt.
Ich glaube ich brauche ein zweidimensionales Array, bin aber nicht so der crack :-(
Wäre, um jeden Rat dankbar..
mfg
Ramin
C++: |
#include<stdio.h> #include<string.h>
int main (void) { FILE *fp_quelle, *fp_ziel; char namequelle[256], nameziel[256]; char zeile[256]; int zeilennr=0; int MaxZeichen=256; printf("Name der Quell-Druck-datei : "); gets(namequelle); printf("Name der Zieldatei-Druck-Datei : "); gets(nameziel); fp_quelle=fopen(namequelle,"r"); if (NULL==fp_quelle) { puts("Fehler beim Oeffnen der Druck-Datei ! \n"); puts("Wahrscheinlich falscher Dateiname angegeben ! \n"); puts("Bitte Programm erneut ausfuehren \n"); getchar(); return(-1); } fp_ziel=fopen(nameziel,"w"); if (NULL==fp_ziel) { puts("Anlegen der Zieldatei nicht moeglich ! \n"); getchar(); return(-1); } fgets(zeile,MaxZeichen,fp_quelle); //Lese Zeile while(!feof(fp_quelle)) //Bis Dateiende { zeilennr++; if(zeilennr==30) { //fputs(zeile-2,fp_ziel); --> hier veruche ich zu manipulieren ???? } fprintf(fp_ziel,"%4d",zeilennr); //Schreiben der Zeilennummern in Datei-->ausdokumentieren !! fputs(zeile,fp_ziel); fgets(zeile,MaxZeichen,fp_quelle); } fclose(fp_quelle); fclose(fp_ziel); printf("%d Zeilen in neue Druck-Datei geschrieben \n",zeilennr); fflush(stdin); getchar(); return(0); }
|
Dieser Post wurde am 24.05.2005 um 22:18 Uhr von Windalf editiert. |