1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
   |  
int BufferSortirTrame(char * pcTrameAExtraire)
{
  FILE *fp;
  char tcNomFichier[20];
  char tcLignePrec[100];
  char tcLigne[100];
  int iBuffReadLine=0;
  long lNouvelleTaille=0;
 
 
  strset(tcLigne,0x00);
  strset(tcLignePrec,0x00);
  strset(tcNomFichier,0x00);
  strcpy(tcNomFichier,"C:\\essai.txt");
 
  fp=fopen(tcNomFichier,"r+t");
  if(fp==NULL)
  {
    // Le fichier n'a pas pu etre ouvert
    return 0 ;
  }
  else
  {
    while((iBuffReadLine=BuffReadLine(fp, tcLigne)))
    {
      strset(tcLignePrec,0x00);
      strcpy(tcLignePrec,tcLigne);
      strset(tcLigne,0x00);
    }
    fseek(fp,0,SEEK_END);
    lNouvelleTaille = ftell(fp);
    fclose(fp);
 
    strset(pcTrameAExtraire,0x00);
    strcpy(pcTrameAExtraire,tcLignePrec);
    if(pcTrameAExtraire[strlen(pcTrameAExtraire)-1]=='\n')
      pcTrameAExtraire[strlen(pcTrameAExtraire)-1]=0x00;
    {
      int iHandle;
 
      lNouvelleTaille = lNouvelleTaille - strlen(pcTrameAExtraire) - 2 ;
      if(lNouvelleTaille<=0)
      {
	unlink(tcNomFichier);
	return 1 ;
      }
      else
      {
	iHandle = open(tcNomFichier,O_RDWR | O_TEXT);
	if(iHandle==-1)
	{
	  // Impossible de tronquer le fichier
	  strset(pcTrameAExtraire,0x00);
	  return 0 ;
	}
	else
	{
	  chsize(iHandle,lNouvelleTaille);
	  close(iHandle);
	}
	return 1 ;
      }
    }
  }
} | 
Partager