NSScanner. Не перемещается указатель при разборе строки
От: sevtov  
Дата: 05.11.11 05:26
Оценка:
В этом примере я не могу разобрать строку на токены, разделенные запятой. Указатель сканирует первый токен, но не перемещается ко второму.
Почему?
    bool res;
    NSString *agent;
    NSScanner *scanner = [NSScanner scannerWithString:@"Bond,Stierlitz,Chapman"];
    
    while ([scanner isAtEnd] == NO) {
        res = [scanner scanUpToString:@"," intoString:&agent];
        NSLog(@"%@ res=%d pos=%d", agent, res, [scanner scanLocation]);
    }


Вот лог :
2011-11-05 09:24:23.679 t36[808:903] Bond res=1 pos=4
2011-11-05 09:24:23.681 t36[808:903] Bond res=0 pos=4
2011-11-05 09:24:23.682 t36[808:903] Bond res=0 pos=4
...
Re: NSScanner. Не перемещается указатель при разборе строки
От: kpcb Россия  
Дата: 05.11.11 06:34
Оценка: 2 (1)
Здравствуйте, sevtov, Вы писали:

S>В этом примере я не могу разобрать строку на токены, разделенные запятой. Указатель сканирует первый токен, но не перемещается ко второму.

S>Почему?
S>
S>    bool res;
S>    NSString *agent;
S>    NSScanner *scanner = [NSScanner scannerWithString:@"Bond,Stierlitz,Chapman"];
    
S>    while ([scanner isAtEnd] == NO) {
S>        res = [scanner scanUpToString:@"," intoString:&agent];
S>        NSLog(@"%@ res=%d pos=%d", agent, res, [scanner scanLocation]);
S>    }
S>


S>Вот лог :

S>
S>2011-11-05 09:24:23.679 t36[808:903] Bond res=1 pos=4
S>2011-11-05 09:24:23.681 t36[808:903] Bond res=0 pos=4
S>2011-11-05 09:24:23.682 t36[808:903] Bond res=0 pos=4
S>...
S>


Начиная со 2ого раза он упирается в найденную запятую. Её нужно пропустить
Re: NSScanner. Не перемещается указатель при разборе строки
От: Аноним  
Дата: 07.11.11 16:34
Оценка:
А если по другому?
NSArray *arr = [string componentsSeparatedByString: @","];
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.