Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- NSString* replace_substring(NSString* source, NSRange range, NSString* replacementString, int PaddingLength)
- {
- NSLog(@"Before padding: %@", source);
- auto SourceLength = [source length];
- auto BeginIndex = range.location;
- auto EndIndex = range.location + range.length;
- cout << "Begin index: " << BeginIndex << " , End index: " << EndIndex << " Source length: " << SourceLength;
- auto PreReplacementLength = EndIndex - BeginIndex;
- auto ReplacementLength = [replacementString length];
- auto PostReplacementLength = SourceLength + PaddingLength;
- auto target = [[[NSString alloc] init] autorelease];
- auto NextIndex = 0;
- for(auto i = 0; i < BeginIndex; ++i)
- {
- auto range = [source rangeOfComposedCharacterSequenceAtIndex:NextIndex];
- NextIndex += range.length;
- auto appendPart = [source substringWithRange:range];
- target = [target stringByAppendingString:appendPart];
- }
- for(auto i = 0; i < PreReplacementLength; ++i)
- {
- auto range = [source rangeOfComposedCharacterSequenceAtIndex:NextIndex];
- NextIndex += range.length;
- }
- target = [target stringByAppendingString:replacementString];
- int RemainingCharacters = ext::int64(SourceLength) - ext::int64(EndIndex) - 1;
- cout << " Rem char: " << RemainingCharacters << endl;
- for(auto i = 0; i < RemainingCharacters; ++i)
- {
- auto range = [source rangeOfComposedCharacterSequenceAtIndex:NextIndex];
- NextIndex += range.length;
- auto appendPart = [source substringWithRange:range];
- target = [target stringByAppendingString:appendPart];
- }
- return target;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement