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