Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование в широком смысле слова > Алгоритмика

Алгоритмика Об алгоритмах вообще; методы, обсуждения способов решения

Ответ
 
Опции темы
Старый 10.10.2011, 16:28   #1
RegIon
Элита
 
Аватар для RegIon
 
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений
(для 1,012 пользователей)
разбиение текста

есть длинный текст,нужно разбить его на мелкие куски,определённой длины...причем желательно чтоб также при встрече символа "\n" разбивал на новую строку....не могу понять..
пример:
"это длинная строка \n как мне ее посечь,ваываываываываывыав"
итог:
"это длинная строка"
"как мне ее посечь,ва"
"ываываываываывыав"
__________________
Сайт: http://iexpo.ml
(Offline)
 
Ответить с цитированием
Старый 10.10.2011, 16:52   #2
SBJoker
Злобный Админ
 
Аватар для SBJoker
 
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений
(для 9,330 пользователей)
Ответ: разбиение текста

Рубим строки сначала по \n потом перебираем получившиеся строки и рубим по длине. Можно делать сразу одним проходом.
__________________
(Offline)
 
Ответить с цитированием
Старый 10.10.2011, 16:58   #3
RegIon
Элита
 
Аватар для RegIon
 
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений
(для 1,012 пользователей)
Ответ: разбиение текста

ну это понятно,но как потом эти строки в двумерный масив [длина][количество] запихать....вот в чем косяк(Cи)
__________________
Сайт: http://iexpo.ml
(Offline)
 
Ответить с цитированием
Старый 10.10.2011, 17:09   #4
RBK
Знающий
 
Аватар для RBK
 
Регистрация: 06.12.2010
Адрес: Луганск
Сообщений: 252
Написано 112 полезных сообщений
(для 166 пользователей)
Ответ: разбиение текста

Хранение данных здесь самая простая часть. Используй линейный связный список например.
__________________
AMD Sempron(tm) 1.41Ггц, 1024МБ ОЗУ, GeForce 6200 128МБ, WinXP SP3.
(Offline)
 
Ответить с цитированием
Старый 10.10.2011, 17:12   #5
RegIon
Элита
 
Аватар для RegIon
 
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений
(для 1,012 пользователей)
Ответ: разбиение текста

ну и как это на си реализовать ?? потом отрисовать текст по буквам из этих строк??
__________________
Сайт: http://iexpo.ml
(Offline)
 
Ответить с цитированием
Старый 10.10.2011, 17:26   #6
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: разбиение текста

Сообщение от Костян Посмотреть сообщение
ну и как это на си реализовать ?? потом отрисовать текст по буквам из этих строк??
IGR? )
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо pax за это полезное сообщение:
impersonalis (10.10.2011), Reks888 (10.10.2011)
Старый 10.10.2011, 17:33   #7
Reks888
Дэвелопер
 
Аватар для Reks888
 
Регистрация: 04.11.2009
Адрес: Украина, Днепропетровск
Сообщений: 1,480
Написано 662 полезных сообщений
(для 1,985 пользователей)
Ответ: разбиение текста

Сначала режешь по /n и заносишь в массив стрингов.
Потом проходишься по ячейкам массива и лишние буквы в конце переносишь в начало следующей ячейки.
Не пойму зачем двумерный массив, можно длину всегда потом найти с помощью strlen(lolo[50])
Рисовать текст это cout<<lolo[50] или на экране?

Предъявить код, точно описать какой момент вызывает трудности.
__________________
>type C:\MyProj\*
www.sypiac.weebly.com
>
(Offline)
 
Ответить с цитированием
Старый 10.10.2011, 17:38   #8
RegIon
Элита
 
Аватар для RegIon
 
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений
(для 1,012 пользователей)
Ответ: разбиение текста

Сначала режешь по /n и заносишь в массив стрингов.
Потом проходишься по ячейкам массива и лишние буквы в конце переносишь в начало следующей ячейки.
Не пойму зачем двумерный массив, можно длину всегда потом найти с помощью strlen(lolo[50])
Рисовать текст это cout<<lolo[50] или на экране?

Предъявить код, точно описать какой момент вызывает трудности.
ммм..вопервых я РИСУЮ картиночными буковками на экране портативного устроиства на платформе ARM,во вторых язык СИ а не с++(сори что сразу не написал)
__________________
Сайт: http://iexpo.ml
(Offline)
 
Ответить с цитированием
Старый 10.10.2011, 17:55   #9
Reks888
Дэвелопер
 
Аватар для Reks888
 
Регистрация: 04.11.2009
Адрес: Украина, Днепропетровск
Сообщений: 1,480
Написано 662 полезных сообщений
(для 1,985 пользователей)
Ответ: разбиение текста

Тогда совмести каждую отдельную картиночную буковку с ASCII кодом буквы, который ты получишь с помощью (int) lolo[50] и выводи по одной буковке, да.
Извиняюсь если что не так, никогда не программировал на портативных устройствах на платформе ARM. Надеюсь у них такое работает
__________________
>type C:\MyProj\*
www.sypiac.weebly.com
>

Последний раз редактировалось Reks888, 10.10.2011 в 17:56. Причина: Букву "т" заело
(Offline)
 
Ответить с цитированием
Старый 11.10.2011, 10:29   #10
RegIon
Элита
 
Аватар для RegIon
 
Регистрация: 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);
}
    
}
слегка длинный.....
я вроде даже придумал алгаритм отсекать по словам(перенос по словам)...
__________________
Сайт: http://iexpo.ml
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 01:44.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com