Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.73/22: Рейтинг темы: голосов - 22, средняя оценка - 4.73
 Аватар для _масяня_
28 / 28 / 3
Регистрация: 18.12.2010
Сообщений: 158

слова из мемо и их перенос

14.10.2011, 21:26. Показов 4839. Ответов 32
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Помогите решить такую задачу:
Имеется файл с текстом на русском языке. Дать варианты переноса всех слов. Перенос возможен по следующим правилам:
1) переносятся либо остаются в конце строки не менее двух символов;
2) невозможен перенос перед буквами 'ь' и 'ъ';
3) слово должно иметь не менее двух слогов;
4) в оставшейся и переносимой частях слова должны быть гласные буквы.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.10.2011, 21:26
Ответы с готовыми решениями:

Перенос строки в мемо
Нужно чтобы после нажатия на кнопку выводилась информация в memo-поле таким с новой строки, таким образом: ФИО Дата поступления ...

Вывод по 3 слова в Мемо
Помогите сделать так, чтобы выводил сообщение от клиента по 3 слова. Если 4 слова и более, то он выводит только первых 3 слова. ... ...

Поиск нужного слова в мемо
Нужно решить такую проблему как поиск слова в мемо. Пробовал перевести код с делфи procedure TForm1.Button1Click(Sender: TObject); ...

32
15 / 15 / 1
Регистрация: 29.05.2011
Сообщений: 45
14.10.2011, 21:45
так и тянет предложить на регулярных выражениях это реализовать, но я о них только по наслышке знаю, к сожалению. но по идее как раз для подобных задач они и предназаначены.
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
14.10.2011, 22:06
Ну, в общих чертах... я бы решал эту задачу так: создал бы два массива - набор согласных букв и набор гласных; затем написал функцию, которая, получив слово, отдавала бы два параметра: число согласных и число гласных в слове. Теперь в таблицу StringGrid вводим наш текст с разделителем "пробел" (здесь возможны варианты), чтоб в каждой строчке было по слову. Ну, а дальше - развёрнутый анализ в цикле - если в слове гласных менее 2, то никаких переносов; иначе - в цикле по количеству букв прикидки: есть ли в блоке гласная, не начинается ли следующий блок на недопустимый символ (ь ъ)... ну а так далее. Довольно сложный алгоритм, но проще без спецсредств, которые наверно существуют, я себе не представляю.
0
 Аватар для _масяня_
28 / 28 / 3
Регистрация: 18.12.2010
Сообщений: 158
14.10.2011, 22:14  [ТС]
У меня есть файл. его текст в мемо. А как узнать какое слово текущее? т.е которое я буду переносить..
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
14.10.2011, 22:20
Я думаю, - с Memo будет неудобно. Туда оч. просто грузить текстовый файл, но обрабатывать строки... не особо приятно. Лучше StringGrid, но это только моё мнение. Вам же ещё как-то нужно "предъявлять" результат обработки. Мне кажется, так было бы приемлемо:
сквозняк : скво-зняк сквоз-няк
собрать : со-брать соб-рать
...
P.S. Я, наверное, напутал: ListBox, а не StringGrid (с устатку...)
0
 Аватар для _масяня_
28 / 28 / 3
Регистрация: 18.12.2010
Сообщений: 158
14.10.2011, 22:25  [ТС]
Каждая ячейка StringGrid, это тоже насколько я понимаю строка. Как туда запихнуть слова из текстового файла я даже представить не могу. Перенос слова должен выглядеть наглядно- а это осуществимо только в мемо.
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
14.10.2011, 22:34
Не только...
ListBox1->Items->LoadFromFile("test.txt");
и там к тому же должна быть функция заполнения строк, используя разделитель (пробел, табулятор и т.д). Я, к сожалению, мало работал с этим элементом, но на этом же форуме встречал о нём хвалебные отзывы. Он довольно мощный именно для работы со словами.
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
14.10.2011, 23:15
я так понимаю , перенос нужен, когда строка не помещается в окно редактирования - но как вы будете определять это при WordWrap и без WordWrap ? вот над этим я бы тоже подумал
0
 Аватар для _масяня_
28 / 28 / 3
Регистрация: 18.12.2010
Сообщений: 158
15.10.2011, 22:32  [ТС]
я долго думал. не важно организован перенос функцией WordWrap или нет, главное чтобы срабатывали условия. Причем каждое из них по отдельности. Нажал на кнопочку все переносы переносятся либо остаются в конце строки не менее двух символов, ну другую- уже переносы делаются по другому правилу. Как это можно реализовать?
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
15.10.2011, 23:59
WordWrap важно, потому что если оно тру - строка все равно не разрывна, перенос чисто визуальный
0
 Аватар для _масяня_
28 / 28 / 3
Регистрация: 18.12.2010
Сообщений: 158
16.10.2011, 00:15  [ТС]
а как же тогда сделать не визуальный перенос?

Добавлено через 10 минут
мне хотя бы кусочек кода... а то совсем не могу уловить суть как это делается...
0
15 / 15 / 1
Регистрация: 29.05.2011
Сообщений: 45
16.10.2011, 19:39
я почти сделал!! не спал две ночи!!!
1
 Аватар для _масяня_
28 / 28 / 3
Регистрация: 18.12.2010
Сообщений: 158
18.10.2011, 18:19  [ТС]
moskk поделись пожалуйста, а то до меня никак не доходит))
0
23 / 23 / 9
Регистрация: 24.04.2010
Сообщений: 220
18.10.2011, 21:47
Люди подскажите как это можно реализовать? столкнулся с такой же задачей!
0
15 / 15 / 1
Регистрация: 29.05.2011
Сообщений: 45
18.10.2011, 23:42
Лучший ответ Сообщение было отмечено как решение

Решение

блин, я задачу не так понял. я два дня делал чё-то типа "найти все возможные варианты деления слова на слоги".
а ваша задачка очень простая оказалась, ловите...
но только там переносы ищутся для слова из эдита, как из мемо слова брать, думаю, разберётесь.
Вложения
Тип файла: rar transf.rar (6.9 Кб, 75 просмотров)
3
23 / 23 / 9
Регистрация: 24.04.2010
Сообщений: 220
28.10.2011, 00:33
moskk выручай пожалуйста. все в твоем варианте хорошо, да не работает перенос перед мягким и твердым знаком.
2) невозможен перенос перед буквами 'ь' и 'ъ';
препод уже мозг весь сел, помоги пожалуйста
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
28.10.2011, 00:43
2) невозможен перенос перед буквами 'ь' и 'ъ';
дык, он и согласно правил русского языка невозможен
0
28.10.2011, 01:30

Не по теме:

LK, поздравляю!)) молодец!)

1
15 / 15 / 1
Регистрация: 29.05.2011
Сообщений: 45
28.10.2011, 10:24
Цитата Сообщение от Mogul-kan Посмотреть сообщение
все в твоем варианте хорошо, да не работает перенос перед мягким и твердым знаком.
Цитата Сообщение от Mogul-kan Посмотреть сообщение
2) невозможен перенос перед буквами 'ь' и 'ъ';
взаимоисключающие параграфы детектед) я не понял, перенос должен быть или нет? сейчас он не ставится, согласно исходным требованиям.
0
 Аватар для _масяня_
28 / 28 / 3
Регистрация: 18.12.2010
Сообщений: 158
28.10.2011, 19:20  [ТС]
Сегодня пытался защитить лабу. Вот что сказал преподаватель. "Есть текстовый файл, в нем есть предложение, например:
"Каждый день после прогулки я захожу в подъезд." Программа должна расставить переносы во всех словах соблюдая следующие правила:
1) переносятся либо остаются в конце строки не менее двух символов;
2) невозможен перенос перед буквами 'ь' и 'ъ';
3) слово должно иметь не менее двух слогов;
4) в оставшейся и переносимой частях слова должны быть гласные буквы.
Конечный результат сохраняется в текстовый файл в виде: Каж-дый день пос-ле про-гул-ки я за-хо-жу в по-дъе-зд. Т. е все переносы сохраняются через дефис." делаю в Builder6 c++
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.10.2011, 19:20
Помогаю со студенческими работами здесь

Подсчитать символы и слова в мемо
Уже есть сухая прога , кароче идет минута вы вводите символы и вылазит оповещения о том что к чему , но вот я не знаю как сделать так чтоб...

Поместить слова текста из мемо в массив
Нужно разбить слова которые написаны в memo на масcив, чтобы каждое слово было отдельным элементом массива.

Выделение искомого слова в мемо (файле тхт) любым способом
Доброго времени суток, подскажите плз вариант решения проблемки: есть 2 мемо, в первое мемо помещаем текст и ищем в нем вхождение слов из...

подскажите пожалуйста как сделать заполнение одного мемо количеством строк равных другому мемо?
Подскажите пожалуйста есть 2 memo в одному допустим 20 строк а в другом 5 как сделать что бы при нажатии на button второй memo заполнялся...

по нажатию кнопки программа вставляет с первого мемо строку с вызываемым номером во второй мемо на первое место
по нажатию кнопки программа вставляет с первого мемо строку с вызываемым номером(номер вводится в эдит) во второй мемо на первое место.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru