- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 13 von 13

Thema: Vertauschen von Bytepositionen in BIN-File

  1. #11
    Erfahrener Benutzer Roboter Genie Avatar von robocat
    Registriert seit
    18.07.2006
    Beiträge
    935
    Anzeige

    LiFePo4 Akku selber bauen - Video
    hm, sorry, nein @ wildcards
    ich hab etz gec0dert, dass man quell und zieldatei explizit angibt, also klappt das nicht. wäre sicher machbar, notfalls crawled man durchs verzeichnis und jede datei bekommt ein "reversed clone".
    dazu würde ich den dateinamen beim punkt splitten und ein _ oder sowas dranmachen. da es nicht puffert, kann man nicht in die datei schreiben, aus der man liest. hinterher kann man ja das original löschen und den clone umbenennen. crawlen ist hier erklärt, bzw naja, nicht erklärt, aber code is da: http://codefactory.dead-men.de/index.php?tutorial=12

    gruesse von eurer katz

  2. #12
    Neuer Benutzer Öfters hier
    Registriert seit
    12.09.2006
    Beiträge
    6
    guten morgen,

    ich habe mal das Thema geändert, hat ja nicht mehr wirklich gepasst

    @robocat:
    ich weiß auch nicht was wir dann machen würden


    gruß GT

  3. #13
    Neuer Benutzer Öfters hier
    Registriert seit
    12.09.2006
    Beiträge
    6
    ... 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; 
    }

Seite 2 von 2 ErsteErste 12

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen