1

バーコードをスキャンして、Equal = 2の場合は値を取得し、 ==で表示する必要があります。また、 Equal = 3の場合は、 =で表示する必要があり、値が4の場合は無効です。

ただし、スキャンされたバーコードは整数値です。それを使用してデコードすると、それ以降のNSASCII値までしか表示されず、127無効な結果が表示されます。例:バーコード値=9699結果値=のjem場合、追加された結果値= jem= actualstring value = ascvalueidのみが表示されます37

これが私のコードです:

- (void) readerView:(ZBarReaderView *)view didReadSymbols:(ZBarSymbolSet *)syms fromImage:(UIImage *)img
{
    // do something useful with results -- cool thing is that you get access to the image too
    for (ZBarSymbol *symbol in syms) {
        [resultsBox setText:symbol.data];
        if ([resultsBox.text length] == 2) {
            addedresult.text = [resultsBox.text stringByAppendingString:@"=="];
        } else if ([resultsBox.text length] == 3) {
           addedresult.text = [resultsBox.text stringByAppendingString:@"="];
        } if ([resultsBox.text length] >= 4) {
           addedresult.text = @"Invalid";
        }
        [Base64 initialize];
        NSString *myString = [[NSString alloc]initWithString:addedresult.text];
        NSData * data = [Base64 decode:myString];
        NSString * actualString = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
        NSLog(@"%@",actualString);
        labeltext.text= actualString;
        int asc = [actualString characterAtIndex:0];
        label.text = [NSString stringWithFormat:@"%d", asc];
        [actualString release];
        break;
    }

}
4

1 に答える 1