Odpowiedz na ten temat
Pokaż wyniki od 1 do 2 z 2
  1. Avatar metal_man
    Dołączył
    Nov 2007
    Skąd
    Chorzów
    Postów
    406

    Cytuj | #1

    Ostatnio bawie sie NSStringiem i Cstringiem. Mam prosty program i gdzes jest w nim gubiona spacja a przy odczytywaniu rowniez dzieja sie nieprzewidywalne rzeczy.

    Koncepcja jest taka aby podany string wrzucic wierszami znak po znaku do tablicy powiedzmy 10x10 a nastepnie odczytac ta tablice ale kolumnami.

    Kod:
    -(NSString *)codingMessage:(NSString *)string
    {
    	// Konwersja NSString do C string
    	const char *simpleText = [string cStringUsingEncoding:NSISOLatin1StringEncoding];
    	int col=0;
    	int row=0;
    	int i=0;
    	int j=0;
    	char *firstArray;
    	char *secondArray;
    	
    	firstArray = malloc(s*s);
    	secondArray = malloc(s*s);
    	
    	for(row=0; row < s; row++) {
    		for(col=0; col < s; col++) {
    			firstArray[col*s+row] = simpleText[i];
    			i++;
    		}
    	}
    	// --------
    	
    	for(row=0; row < s; row++) {
    		for(col=0; col < s; col++) {
    			NSLog(@"[%d][%d] = %c",col,row,firstArray[row*s+col]);
    		}
    	}
    	
    	j=0;
    	for(col=0; col < s; col++) {
    		for(row=0; row < s; row++) {
    			secondArray[j] = firstArray[col*s+row];
    			NSLog(@"%c",secondArray[j]);
    			j++;
    		}
    	}
    	
    	codedString = [NSString stringWithCString:secondArray
    									 encoding:NSASCIIStringEncoding];
    	
    	return codedString;
    }
    Pewnie istnieje prosta mozliwosc, bez konwersji, operujac wylacznie na NSStringu. Widocznie jeszcze nie dojrzalem do tego.
    Ostatnio edytowane przez metal_man ; 23.10.2010 o 18:21
    Komputer:  MacBook White 13,3" 2,26GHz (Lion 10.7)
    Telefon:  iPhone 3GS (16GB) ;  iPhone 3G (8GB)
    Odtwarzacz:  iPod@iPhone
    Tablet:  iPad2


  2. Avatar metal_man
    Dołączył
    Nov 2007
    Skąd
    Chorzów
    Postów
    406

    Cytuj | #2

    Dobra poradzilem sobie z problemem. Wogole zmienilem podejscie i teraz smiga jak ta lala. Dla potomnych rozwiazanie

    Kod:
    -(NSString *)passingMessage:(NSString *)string
                  stringLength:(int)l
                          size:(int)s
    {
        NSMutableString *helperString = [[NSMutableString alloc] init];
        unsigned char *simpleArray;
        int col=0;
        int row=0;
        int i=0;
        
        simpleArray = malloc(s*s);
        
        i=0;
        for (row = 0; row < s; row++) {
            for (col = 0; col < s; col++) {
                if (i < l) {
                    simpleArray[row*s + col] = [string characterAtIndex:i];
                }
                else {
                    simpleArray[row*s + col] = 32;
                }
                i++;
            }
        }
        
        for (col = 0; col < s; col++) {
            for (row = 0; row < s; row++) {
                NSString *simpleChar = [NSString stringWithFormat:@"%c", simpleArray[row*s+col]];
                [helperString appendString:simpleChar];
            }
        }
        
        codedString = [NSString stringWithString:helperString];
        
        return codedString;
    }
    Komputer:  MacBook White 13,3" 2,26GHz (Lion 10.7)
    Telefon:  iPhone 3GS (16GB) ;  iPhone 3G (8GB)
    Odtwarzacz:  iPod@iPhone
    Tablet:  iPad2

Odpowiedz na ten temat