E' stata cmabiata per l'ennesima volta la TParagraph_string::tokenize().
Spero sia la volta buona git-svn-id: svn://10.65.10.50/trunk@3921 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
		
							parent
							
								
									1a6c398836
								
							
						
					
					
						commit
						337c8d45bc
					
				@ -1418,25 +1418,32 @@ const TString& TParagraph_string::operator =(const char* s)
 | 
			
		||||
 | 
			
		||||
void TParagraph_string::tokenize()
 | 
			
		||||
{                                  
 | 
			
		||||
  int last_space = 0;
 | 
			
		||||
  int chars_in_row = 0;
 | 
			
		||||
  int last_space = 0, last_start = 0;
 | 
			
		||||
  int num_chars = 0;
 | 
			
		||||
  const int l = len();
 | 
			
		||||
  TString stmp;
 | 
			
		||||
  for (int start = 0; start < l; start++)
 | 
			
		||||
  TString stmp,sstr(_str),swork; // stringhe di lavoro
 | 
			
		||||
  for (int start = 0; start < l;)
 | 
			
		||||
  {
 | 
			
		||||
    
 | 
			
		||||
    switch (_str[start])
 | 
			
		||||
    {
 | 
			
		||||
      case '\n': _str[start]='|'; last_space = 0;chars_in_row=0; break;
 | 
			
		||||
      case ' ' : last_space = start; chars_in_row++; break;
 | 
			
		||||
      default  : chars_in_row++;  break;
 | 
			
		||||
      case '\n': last_space = start; num_chars = _width; break;
 | 
			
		||||
      case ' ' : last_space = start; num_chars++; break;
 | 
			
		||||
      default  : num_chars++;  break;
 | 
			
		||||
    }
 | 
			
		||||
    stmp<<_str[start];
 | 
			
		||||
    if (chars_in_row == _width && chars_in_row != l)
 | 
			
		||||
    
 | 
			
		||||
    if (num_chars == _width)
 | 
			
		||||
    {
 | 
			
		||||
      if (last_space!=0) stmp[last_space] = '|';
 | 
			
		||||
      else stmp<<"|";
 | 
			
		||||
      last_space = 0; chars_in_row = 0;
 | 
			
		||||
      int num_of_chars_in_row = (last_space+1) - last_start;
 | 
			
		||||
      if (num_of_chars_in_row <= 0) num_of_chars_in_row = _width; // Se non ci sono spazi tronca la stringa a 25
 | 
			
		||||
      swork=sstr.mid(last_start,num_of_chars_in_row);
 | 
			
		||||
      stmp << swork.trim();
 | 
			
		||||
      stmp << "|";
 | 
			
		||||
      last_space = num_chars = 0;
 | 
			
		||||
      start = start - (_width - num_of_chars_in_row); // riporta indietro (toglie il numero di caratteri effettivi della riga)
 | 
			
		||||
      last_start = start;
 | 
			
		||||
    }
 | 
			
		||||
    start++;
 | 
			
		||||
  }
 | 
			
		||||
  TToken_string::operator=(stmp);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user