テキストファイルに文字列を書き込もうとしています。そのテキスト ファイルは、別のプログラムによって読み取られます。その 2 番目のプログラムは、テキスト ファイル内のさまざまな「フィールド」が固定幅であると想定しています。したがって、アプリでテキスト ファイルを書き込むときは、実際のデータの間にスペースを追加して、すべてを正しく並べる必要があります。これらのスペースを追加するにはどうすればよいですか?
ここまでで、ソース文字列とターゲットの長さを入力として受け取る関数を作成してみました。ターゲットがソースよりも長い場合は、単に " " を追加します。このルーチンのコードは次のとおりです。
- (NSString *) makeStringFrom:(NSString *)source withLength:(NSInteger)length
{
// Method to add spaces to the end of a string to get it to a certain length
if ([source length] > length)
{
// String is too long - throw warning and send it back
NSLog(@"Warning - string is already longer than length supplied. Returning source string");
return source;
}
else if ([source length] == length)
{
// String is already correct length, so just send it back
return source;
}
else
{
// String is too short, need to add spaces
NSMutableString *newString = [[NSMutableString alloc] initWithString:source];
NSLog(@"newString initial length = %d",[newString length]);
for (int current = [source length]; current < length; current ++)
{
[newString stringByAppendingString:@" "];
NSLog(@"hit");
}
NSLog(@"target length = %d. newString length = %d",length,[newString length]);
return newString;
}
}
これは明らかに機能しません。返された文字列の長さは、 NSLog(@"hit"); 複数回実行されます。