
StrSearchTable *StrDictGetTableC(char *stream, int size)
{
  char *buffer;  
  FILE *fichier;
  StrSearchTable *table;
  char *posTab;
  char *key;
  char *value;
  int len;
  

  if(!buf)buf=BufferCreate(100,50);

  table=StrSearchTableCreate(size, size/4);
  if((fichier = fopen(stream, "r")))
    {
      while ((buffer=BufferFgets(buf,fichier)))
	{
	  if((posTab=strchr(buffer,'\t')))
	    {
	      len = posTab-buffer;
	      key=malloc(len+1);
	      strncpy(key, buffer, len); key[len]='\0';
	      len = strlen(buffer);
	      if(buffer[len-1]=='\n')buffer[len-1]='\0';
	      value=malloc(strlen(posTab)+1);
	      CharSetCtoA(posTab+1,value);
	      StrSearchAdd(table,key,value);
	    }
	  else StrSearchAdd(table,BufferSave(buf),"");
	};
      return (table);
    }
  else return NULL;
}
/*******************************************************/


StrSearchTable *StrSearchGetTableFromFile(FILE *fichier, int size)
{
  char *buffer;
  StrSearchTable *table;
  char *posTab;
  char *key;
  char *value;
  int len;


  if(!buf)buf=BufferCreate(100,50);

  table=StrSearchTableCreate(size, size/4);
  while ((buffer=BufferFgets(buf,fichier)))
    {
      if((posTab=strchr(buffer,'\t')))
	{
	  len = posTab-buffer;
	  key=malloc(len+1);
	  strncpy(key, buffer, len); key[len]='\0';
	  len = strlen(buffer);
	  if(buffer[len-1]=='\n')buffer[len-1]='\0';
	  value=malloc(strlen(posTab)+1);
	  strcpy(value,posTab+1);
	  StrSearchAdd(table,key,value);
	}
      else 
	{
	  StrSearchAdd(table,BufferSave(buf),"");
	}
    };
  return (table);
}




StrSearchTable *StrSearchGetTable(char *stream, int size)
{
 
  StrSearchTable *table;

  if((table=StrSearchTableCreate(size, size/4)))
    
    return StrSearchAddTable(stream, table);

  else return NULL;

}


