Сегодня наводя порядок в своих архивах наткнулся на интересную находку — как то в 2008 разрабатывал АПК TrapMind и даже оформил на него авторское свидетельство.

Обо всём…
Сегодня наводя порядок в своих архивах наткнулся на интересную находку — как то в 2008 разрабатывал АПК TrapMind и даже оформил на него авторское свидетельство.

Наконец-то дошли руки!
Уже давно хотелось поделиться своими экспериментами юности в области программирования.
В основном тогда мне было интересно писать на Pascal/Delphi + Assembler.
Пользуйтесь на здоровье в образовательных целях! =)
NSString *dbReadString(FILE *f)
{
char cBuf[256];
NSString *result = nil;
int len = 0; fread(&len, 1, 1, f);
if ( len > 0 )
{
if ( len > 255 ) len = 255;
fread(&cBuf, len, 1, f);
cBuf[ len ] = 0;
result = [[NSString alloc] initWithBytes:cBuf length:len encoding:NSWindowsCP1251StringEncoding];
NSString *result2 = [[NSString alloc] initWithCString: cBuf encoding: NSWindowsCP1251StringEncoding];
if ([result compare:result2] != NSOrderedSame)
NSLog(@"/%@/ ! = /%@/", result, result2);
}
return result;
}
NSLog иногда срабатывает.
Upd: Если встречается буфер с содержимым к примеру: ‘AB’\0’C’ (при длине строки в 4 символа), то при использовании инициализатора initWithBytes: length: encoding: нулевые символы тоже попадают в строку.
Это приводит к непредсказуемым результатом в работе с этой строкой.
Так что лучше использовать initWithCString.
GitHub: iNiKe
Заметки из своего повседневного опыта кросс-платформенного программирования и не только…
Мобильные платформы
Прочие платформы