|
Алгоритмика Об алгоритмах вообще; методы, обсуждения способов решения |
10.10.2011, 16:28
|
#1
|
Элита
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений (для 1,012 пользователей)
|
разбиение текста
есть длинный текст,нужно разбить его на мелкие куски,определённой длины...причем желательно чтоб также при встрече символа "\n" разбивал на новую строку....не могу понять..
пример:
"это длинная строка \n как мне ее посечь,ваываываываываывыав"
итог:
"это длинная строка"
"как мне ее посечь,ва"
"ываываываываывыав"
|
(Offline)
|
|
10.10.2011, 16:52
|
#2
|
Злобный Админ
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений (для 9,330 пользователей)
|
Ответ: разбиение текста
Рубим строки сначала по \n потом перебираем получившиеся строки и рубим по длине. Можно делать сразу одним проходом.
__________________
|
(Offline)
|
|
10.10.2011, 16:58
|
#3
|
Элита
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений (для 1,012 пользователей)
|
Ответ: разбиение текста
ну это понятно,но как потом эти строки в двумерный масив [длина][количество] запихать....вот в чем косяк(Cи)
|
(Offline)
|
|
10.10.2011, 17:09
|
#4
|
Знающий
Регистрация: 06.12.2010
Адрес: Луганск
Сообщений: 252
Написано 112 полезных сообщений (для 166 пользователей)
|
Ответ: разбиение текста
Хранение данных здесь самая простая часть. Используй линейный связный список например.
__________________
AMD Sempron(tm) 1.41Ггц, 1024МБ ОЗУ, GeForce 6200 128МБ, WinXP SP3.
|
(Offline)
|
|
10.10.2011, 17:12
|
#5
|
Элита
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений (для 1,012 пользователей)
|
Ответ: разбиение текста
ну и как это на си реализовать ?? потом отрисовать текст по буквам из этих строк??
|
(Offline)
|
|
10.10.2011, 17:26
|
#6
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: разбиение текста
Сообщение от Костян
ну и как это на си реализовать ?? потом отрисовать текст по буквам из этих строк??
|
IGR? )
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо pax за это полезное сообщение:
|
|
10.10.2011, 17:33
|
#7
|
Дэвелопер
Регистрация: 04.11.2009
Адрес: Украина, Днепропетровск
Сообщений: 1,480
Написано 662 полезных сообщений (для 1,985 пользователей)
|
Ответ: разбиение текста
Сначала режешь по /n и заносишь в массив стрингов.
Потом проходишься по ячейкам массива и лишние буквы в конце переносишь в начало следующей ячейки.
Не пойму зачем двумерный массив, можно длину всегда потом найти с помощью strlen(lolo[50])
Рисовать текст это cout<<lolo[50] или на экране?
Предъявить код, точно описать какой момент вызывает трудности.
|
(Offline)
|
|
10.10.2011, 17:38
|
#8
|
Элита
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений (для 1,012 пользователей)
|
Ответ: разбиение текста
Сначала режешь по /n и заносишь в массив стрингов.
Потом проходишься по ячейкам массива и лишние буквы в конце переносишь в начало следующей ячейки.
Не пойму зачем двумерный массив, можно длину всегда потом найти с помощью strlen(lolo[50])
Рисовать текст это cout<<lolo[50] или на экране?
Предъявить код, точно описать какой момент вызывает трудности.
|
ммм..вопервых я РИСУЮ картиночными буковками на экране портативного устроиства на платформе ARM,во вторых язык СИ а не с++(сори что сразу не написал)
|
(Offline)
|
|
10.10.2011, 17:55
|
#9
|
Дэвелопер
Регистрация: 04.11.2009
Адрес: Украина, Днепропетровск
Сообщений: 1,480
Написано 662 полезных сообщений (для 1,985 пользователей)
|
Ответ: разбиение текста
Тогда совмести каждую отдельную картиночную буковку с ASCII кодом буквы, который ты получишь с помощью (int) lolo[50] и выводи по одной буковке, да.
Извиняюсь если что не так, никогда не программировал на портативных устройствах на платформе ARM. Надеюсь у них такое работает
Последний раз редактировалось Reks888, 10.10.2011 в 17:56.
Причина: Букву "т" заело
|
(Offline)
|
|
11.10.2011, 10:29
|
#10
|
Элита
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений (для 1,012 пользователей)
|
Ответ: разбиение текста
да,так рулит...но он пишет тока строки:
void DrawTextEx(font_type font,int x,int y,char* text)
{ uint16_t ch=0,chr,f_i=(uint16_t)((font.f_width-font.f_rans)*.5);
for(ch=0;ch<csize(text);ch++){
chr=text[ch];
drawimage(font.handle,x+(ch*font.f_rans),y,((chr%16)*font.f_width)+f_i+font.f_w_err,(chr>>4)*font.f_height+font.f_h_err,font.f_rans,font.f_height,1);
}
}
слегка длинный.....
я вроде даже придумал алгаритм отсекать по словам(перенос по словам)...
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 01:44.
|