hitmany
Участник
- Сообщения
- 171
- Реакции
- 97
Есть длинный текст, его нужно отобразить в виде меню, я написал функцию которая делит строку на 40 символов с помощью ExplodeString и добавляет в конец перенос строки
Но с Юникодом беда, если его так резать появляется Заменяющий символ
�
Как быть? Используется словарь, на латинице все хорошо. Но я не могу тупо вставить переносы в словарь, т.к. этот текст еще используется для вывода в чат
Но с Юникодом беда, если его так резать появляется Заменяющий символ
�
Как быть? Используется словарь, на латинице все хорошо. Но я не могу тупо вставить переносы в словарь, т.к. этот текст еще используется для вывода в чат
PHP:
new length = strlen(text);
decl String:BackupDescr[2][1024], String:LongDescr[10][1024];
if(length > 40)
{
new iStrParags = RoundToCeil(float(length)/40)+1;
for(new str; str<iStrParags; str++)
{
if( str == 0 )
{
Format(LongDescr[str], 41, text);
ExplodeString(text, LongDescr[str], BackupDescr, 2, 1024, true);
}
else {
Format(LongDescr[str], 41, BackupDescr[1]);
ExplodeString(BackupDescr[1], LongDescr[str], BackupDescr, 2, 1024, true);
}
}
switch( iStrParags )
{
case 2: { Format(text, 1024, "%s\n%s", LongDescr[0], LongDescr[1]); }
case 3: { Format(text, 1024, "%s\n%s\n%s", LongDescr[0], LongDescr[1], LongDescr[2]); }
case 4: { Format(text, 1024, "%s\n%s\n%s\n%s", LongDescr[0], LongDescr[1], LongDescr[2], LongDescr[3]); }
case 5: { Format(text, 1024, "%s\n%s\n%s\n%s\n%s", LongDescr[0], LongDescr[1], LongDescr[2], LongDescr[3], LongDescr[4]); }
case 6: { Format(text, 1024, "%s\n%s\n%s\n%s\n%s\n%s", LongDescr[0], LongDescr[1], LongDescr[2], LongDescr[3], LongDescr[4], LongDescr[5]); }
case 7: { Format(text, 1024, "%s\n%s\n%s\n%s\n%s\n%s\n%s", LongDescr[0], LongDescr[1], LongDescr[2], LongDescr[3], LongDescr[4], LongDescr[5], LongDescr[6]); }
case 8: { Format(text, 1024, "%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s", LongDescr[0], LongDescr[1], LongDescr[2], LongDescr[3], LongDescr[4], LongDescr[5], LongDescr[6], LongDescr[7]); }
case 9: { Format(text, 1024, "%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s", LongDescr[0], LongDescr[1], LongDescr[2], LongDescr[3], LongDescr[4], LongDescr[5], LongDescr[6], LongDescr[7], LongDescr[8]); }
case 10: { Format(text, 1024, "%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s", LongDescr[0], LongDescr[1], LongDescr[2], LongDescr[3], LongDescr[4], LongDescr[5], LongDescr[6], LongDescr[7], LongDescr[8], LongDescr[9]); }
}
}
Вложения
Последнее редактирование: