Tabs bzw. Leerzeichen entfernen



  • wie kann ich wenn ich z.b. aus einer datei einlese, die wie folgt aussieht:

    blablablafaselbla
    blablablafaselbla
    blablablafaselbla
    blablablafaselbla
    
    #end
    

    ... die abschließenden Leerzeilen, Leertabs und Leerzeichen löschen, die sich vor dem #end und nach dem letzten blablablafaselbla befinden?
    Im Prinzip lese ich ja schon zeilenweise mit fgets ein und zwar so:

    while ( fgets (in, MAX, file) != NULL)
    {
    ...
    }
    

    so müsste er doch eigentlich die leerzeilen ausser acht lassen, macht er aber nicht. Wie kann ich das also ändern, damit nach dem letzten Wort und vor dem #end alles verschwindet?
    Bsp.: Datei vorher:

    blablablafaselbla
    blablablafaselbla
    blablablafaselbla
    blablablafaselbla
    
    #end
    

    Datei nachher: (so soll sie aussehen)

    blablablafaselbla
    blablablafaselbla
    blablablafaselbla
    blablablafaselbla#end
    

    hoffe mir kann jemand helfen.



  • Schreib dir am besten eine Funktion, mit der du alle White-Space-Zeichen (Leerzeichen, Tabs, Zeilenumbruch) raus löschst aus dem String, den du eingelesen hast mit fgets(). Solch eine Funktion dürfte sogar im Forum schon rumgeistern. Versuch sie mal über die Suchfunktion zu finden. (Suchhilfe: Forum DOS-Konsole oder dieses hier; Suchwort: isspace)



  • wie kann ich diese datei von hinten überprüfen und alle whitespaces nach dem #end entfernen?



  • Versuch es mit einer Funktion die auf Leerzeichen prueft.Falls die Funktion ein Leerzeichen erkennt,soll sie das Zeichen überspringen,ansonsten soll sie das Zeichen in einen Ordner kopieren...



  • while ( fgets (in, MAX, file) != NULL)
    {
    i=' ' ? i++ : fputc .... 
    }
    //Irgendwie so...
    


  • lese die Datei ein mit fgets,
    überprüfe die einzelenen character des gelesenen Strings mit isspace

    isspace returns a non-zero value if c is a white-space character (0x09 – 0x0D or 0x20).

    suche das #end und beende dann das lesen.


Anmelden zum Antworten