Fehler beim Datei auslesen



  • hallo ich wollt eine datei auslessen
    die so ungefähr aufgebaut ist

    <Größe des Blockes in x*y>
    yxxxxxxxxxxxxx
    yxxxxxxxxxxxxx
    yxxxxxxxxxxxxx
    yxxxxxxxxxxxxx
    yxxxxxxxxxxxxx
    yxxxxxxxxxxxxx
    yxxxxxxxxxxxxx

    Die größe bekomm ich ausgelesen
    hab nur noch das problem mit dem Dateienblock der mich eigendlich interresiert
    ich wollte diesen durch fseek von hinten auslesen
    für die zeiger verschiebung multipliziere ich (x+1)*y
    x+1 für die \n
    aber aus irgendwälche gründe liest er die daten zufrüh aus
    selbst wenn ich x+2 nehme passen die zeichen nicht
    die zallen(größe) die ich aus der datei auslesse sind richtig

    verschieben=((dsizex*dsizey)*(-1));                                              
           fseek(Datei, (verschieben), SEEK_END);                        
           for (i=0;i<dsizey;i++){
            for (j=0;j<dsizex;j++){
                fscanf(Datei,"%c",&Read);
                datei[j][i]=Read;
                }
    

    dsizex ist der x wert und wurde schon davor um eins erhöt



  • Warum liest du den Block nicht vorwärts ein aber speicherst ihn rückwärts?

    for (i=dsizey;i>0;--i){
            for (j=0;j<dsizex;j++){
                fscanf(Datei,"%c",&Read);
                datei[j][i-1]=Read;
            }
        }
    

    Gruß mcr

    EDIT: solltest dann nur mit den Sonderzeichen wie '\n' aufpassen.



  • hab ich mir auch schon überlegt aber
    das löst ja mein problem nicht das er nicht genügend zeichen einliest



  • 123 schrieb:

    hab ich mir auch schon überlegt aber
    das löst ja mein problem nicht das er nicht genügend zeichen einliest

    Dann poste hier mal ein komplettes Beispiel.

    Gruß mcr


Anmelden zum Antworten