String-Reverse - FileReverse (C)

    This site uses cookies. By continuing to browse this site, you are agreeing to our use of cookies. More details

    • String-Reverse - FileReverse (C)


      Ist eigtl. nur aus etwas Langeweile entstanden. Wozu es nützlich sein könnte ? Keine Ahnung...
      Es ist halt ein Tool mit welchem man Texte in Dateien spiegeln kann. Vielleicht ist für den ein oder anderen ja auch nur die Funktion "strReverse" nützlich ohne den Datei-Krimskrams.


      C Source Code

      1. #include <stdlib.h>
      2. #include <stdio.h>
      3. #include <string.h>
      4. char* strReverse(char* str)
      5. {
      6. // Deklarationen / Initialisierungen
      7. int len = strlen(str);
      8. int i = 0, j = len;
      9. char *strRev = malloc(sizeof(char) * (len + 1)); // Länge + abschliessendes Nullbyte
      10. *(strRev+len+1) = '\0'; // Nullbyte anhängen
      11. while((len-- >= 0) && (i <= j)) // String spiegeln
      12. *(strRev+i++) = *(str+len);
      13. return strRev;
      14. }
      15. int reverseFile(char* filepathIn, char* filepathOut)
      16. {
      17. // Deklarationen / Initialisierungen
      18. FILE *fpIn, *fpOut;
      19. char *line = NULL; char *lineReversed = NULL;
      20. size_t len = 0;
      21. if( (fpIn = fopen(filepathIn, "r")) != NULL)
      22. {
      23. if( (fpOut = fopen(filepathOut, "w")) != NULL )
      24. {
      25. while ((getline(&line, &len, fpIn)) != -1)
      26. {
      27. //printf("\t[DEBUG] : %s\n", line);
      28. lineReversed = strReverse(line);
      29. //printf("\t[DEBUG] : %s\n", lineReversed);
      30. fputs(lineReversed, fpOut);
      31. }
      32. // Freigaben
      33. fclose(fpIn); fclose(fpOut);
      34. free(lineReversed); // Speicher freigeben
      35. if (line)
      36. free(line);
      37. return EXIT_SUCCESS;
      38. }
      39. else
      40. {
      41. fprintf(stderr,"\t[!] FEHLER : Kann Datei "%s" nicht zum schreiben oeffnen\n", filepathOut);
      42. return EXIT_FAILURE;
      43. }
      44. }
      45. else
      46. {
      47. fprintf(stderr,"\t[!] FEHLER : Kann Datei "%s" nicht zum lesen oeffnen\n", filepathIn);
      48. return EXIT_FAILURE;
      49. }
      50. }
      51. int main(int argc, char** argv)
      52. {
      53. // Deklarationen / Initialisierungen
      54. int result = -1;
      55. printf("\t..:: StrRev-Utility ::..\n\n");
      56. printf("[+] Beginne Reversing der Datei...\n");
      57. if( (result = reverseFile("./TestFile", "./TestFileReversed")) == EXIT_SUCCESS )
      58. printf("[+] D0n3\n");
      59. return 0;
      60. }
      Display All


      Das Tool liest die Datei "TestFile" ein, spiegelt sie und speichert das Ergebnis unter "TestFileReversed" ab.

      ..:: BEISPIEL ::..

      Sei der Inhalt der Datei "TestFile" der Quellcode selbst.



      Aufruf des Tools


      So erhält man (z.B. durch Eingabe von "less TestFileReversed") folgendes Ergebnis in der Datei TestFileReversed...


      Ergebnis in "less" betrachten



      :aetsch: