... so ich gebe mal den modifizierten quelltext zum besten. er ist jetzt soweit angepasst das ich ihn so verwenden werde.
nochmals vielen dank an die beiden helfer!
Code:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argumentcounter, char *argumentvariable[])
{
FILE *pDatei,*pZiel;
long size;
char zeichen,endung[5],Ziel[255];
int laenge,i;
if (argumentcounter==1 || argumentcounter>3) // Fehlerhafte Eingabe
{
printf("\nFehler! Es fehlen die Parameter Quellddateiname und ggf. Zieldateiname.\n\n");
printf("Wenn der Zieldateiname gleich dem Quelldateinamen plus den Zusatz '_down' entsprechen soll, muss nur der Quelldateiname uebergeben werden. Weicht der Zieldateiname ab, muessen beiden Namen uebergeben werden.\n");
printf("\n");
printf("Bsp.: \n1.) Quell- und Zielname gleich: \n");
printf("\tAufruf: 'reverse.exe Quelle.bin'\n");
printf("\tAusgabedatei: Quelle_down.bin\n\n");
printf("2.) Quell- und Zielname ungleich \n");
printf("\tAufruf: 'reverse.exe Quelle.bin Ziel.bin'\n");
printf("\tAusgabedatei: Ziel.bin\n\n");
exit(1);
}
if (argumentcounter==2) // Zieldateiname gleich dem Quelldateinamen + "_down"
{
pDatei = fopen(argumentvariable[1],"rb");
if(pDatei == NULL)
{
printf("Fehler beim Oeffnen der Quell-Datei!\n");
printf("Programm beendet.\n");
//getch();
exit(1);
}
laenge=strlen(argumentvariable[1]);
strcpy(Ziel,argumentvariable[1]);
for (i=0;i<5;i++)
{endung[i]=Ziel[(laenge-4)+i];}
strncpy(Ziel,argumentvariable[1],laenge-4);
Ziel[laenge-4]='\0';
strcat(Ziel,"_down");
strcat(Ziel,endung);
pZiel = fopen(Ziel, "wb");
if(pZiel == NULL)
{
printf("Fehler beim Oeffnen der Ziel-Datei!\n");
printf("Programm beendet.\n");
fclose(pDatei);
//getch();
exit(1);
}
}
if (argumentcounter==3) // Quellename ungleich Zielname
{ pDatei = fopen(argumentvariable[1],"rb");
if(pDatei == NULL)
{
printf("Fehler beim Oeffnen der Quell-Datei!\n");
printf("Programm beendet.\n");
//getch();
exit(1);
}
pZiel = fopen(argumentvariable[2], "wb");
if(pZiel == NULL)
{
printf("Fehler beim Oeffnen der Ziel-Datei!\n");
printf("Programm beendet.\n");
fclose(pDatei);
//getch();
exit(1);
}
}
fseek(pDatei,0,SEEK_END);
size=ftell(pDatei);
while (size>=0)
{
if(fread (&zeichen,1,1,pDatei))
fwrite (&zeichen,1,1,pZiel);
size--;
fseek(pDatei,size,SEEK_SET);
}
fclose(pZiel);
fclose(pDatei);
printf("Programm erfolgreich beendet.\n");
//getch();
return 0;
}
Lesezeichen