If anweisung für vorherige zeile in datei



  • Hi!!!!

    ich habe eine datei
    123456789
    334455667
    123456789
    334455667
    ....

    jetzt will ich eine if abfrage machen:
    if(strcmp(334455667,inpline)==0 && ...) // ... = "in der zeile vorher das 3te
    zeichen eine 3 ist!!!"
    { printf("Line X"); }

    wie krieg ich das hin, dass er in der vorherigen zeile schaut was an einer bestimmten position steht?



  • Merk dir doch einfach die letzte Zeile, lesen musst du sie ja eh.



  • wie, merken????
    ich weiss nicht, wie ich darauf zugreifen kann.

    wenn es in der zeile wäre, könnte ich doch einfach schreiben

    if(inpline[3] =='3')
      { printf("Line X") }
    

    aber für die zeile vorher weiss ich da nicht, wie ich ihm das erklären soll 😞



  • current_line = 0, last_line = 0
    
    while(nicht am ende der zeile)
    {
    	last_line = current_line
    	current_line = lesen aus der datei
    
    	if(strcmp(334455667,current_line)==0 && last_line[x] == '3') 
    }
    

    Das musst du jetzt nur in als C Code schreiben.



  • while(fgets(inpline, MAXLENGTH, finp) != NULL) 
      {	++nline;
    
          if(strncmp(MRS,inpline, 39)==0 && ...) 
            { 
               printf("Match for MRS in line %d\n", nline); 
            } 
      }
    

    ich lese ja mit fgets schon meine datei ein ....
    wenn ich das jetzt so machen würde, dann muss ich das doch komplett umstellen oder? dann schnallt er ja nicht mehr wann das EOF ist



  • fgets(inpline, MAXLENGTH, finp) in die schleife rein und in den Schleifenkopf !feof(finp) .. dann kannst du auch das andere einbauen.



  • also irgendwie haut das so nicht hin oder ist stell mich zu dusselig an.

    da ich es so nicht hinkriege und auch nicht so ganz durchblicke, geht es auch so:

    while(fgets(inpline, MAXLENGTH, finp) != NULL) {		
    	  ++nline;
    
         while(i != '\n')
              {
              last_line = inpline; 
              if(strcmp(334455667,inpline)==0 && last_line[3] == '3')
              }
    

    da feht jetzt ja nur noch, dass er wenn ein \n kommt die line nicht übernehmen soll, sondern eben dass last_line immer eine zeile hinterher ist.
    und das schnall ich wieder mal nicht *grml*


Anmelden zum Antworten