С Новым годом! Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/35: Рейтинг темы: голосов - 35, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 14.12.2011
Сообщений: 6

Как разбить на части текст вводимый в edit(memo)?

26.03.2012, 19:49. Показов 6995. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день. Нужно решить задачу, и для решения необходимо разбить вводимый текст (последовательность чисел). Текст можно ввести через Edit либо через Memo. Не существенно. Например : 12345678 нужно разбить на 1234 и 5678.
Помогите нуждающемуся
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.03.2012, 19:49
Ответы с готовыми решениями:

Текст из edit разбить на слова, отсортировать и залить в memo
Дан текст содержащий от 2 до 50 слов в каждом из которых от 1 до 8 латинских букв, между соседними словами не менее одного пробела, за...

Как разбить текст занесенный в Memo на массив
Как разбить текст занесенный в Memo на массив? чтобы каждое слово было элементом массива?

Разбить текст в Edit
Нужно написать процедуру, которая разбивает текст в edit на 3 части и записывает каждую часть в строковую переменную. Части в тексте...

8
 Аватар для Mawrat
13114 / 5895 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
26.03.2012, 20:05
Исходный текст берётся из Edit1. В Memo1 построчно записываются части по 4 символа.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
procedure TForm1.Button1Click(Sender: TObject);
var
  S : String;
  i, Len : Integer;
begin
  Memo1.Clear;
  S := Edit1.Text;
  Len := Length(S);
  i := 1;
  while i <= Len do begin
    Memo1.Lines.Add( Copy(S, i, 4) );
    Inc(i, 4);
  end;
end;
Например:
Code
1
2
3
4
5
6
7
Исходный текст:
12345678912345
Результат:
1234
5678
9123
45
1
0 / 0 / 0
Регистрация: 14.12.2011
Сообщений: 6
26.03.2012, 20:12  [ТС]
Спасибо, вот только число может быть и 2ух значным.

Нашел решение как разделить если число делиться на 2!

copy(text,1,lenght(text) div 2);

copy(text,lenght(text) div 2,lenght(text) div 2);

Правильно? И теперь основной вопрос как организовать если число не делиться на 2!
0
 Аватар для Mawrat
13114 / 5895 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
26.03.2012, 22:43
Цитата Сообщение от GreatDan Посмотреть сообщение
пасибо, вот только число может быть и 2ух значным.
Двухзначное число тоже будет правильно обработано тем кодом, который разбивает текст на части по 4 символа. Если, конечно, под двухзначным подразумевается исходное число.
Цитата Сообщение от GreatDan Посмотреть сообщение
Нашел решение как разделить если число делиться на 2!
Что понимается под делением? Как я понимаю, имеется в виду количество символов, кратное 2-ум? Чтобы разделить текст на пары символов достаточно в том же коде вместо 4 записать 2.
Цитата Сообщение от GreatDan Посмотреть сообщение
как организовать если число не делиться на 2!
Тот алгоритм правильно обработает любое количество символов. Если, например, мы используем код с числом 4, то если в исходном тексте количество символов не кратно 4-ём, то в последней строке результата количество символов будет меньше 4-ёх.
---
Там можно вписывать любое положительное число. Таким образом, можно разбивать текст по 1, по 2, по 3 и т. д., символов.
0
0 / 0 / 0
Регистрация: 14.12.2011
Сообщений: 6
27.03.2012, 00:44  [ТС]
Цитата Сообщение от Mawrat Посмотреть сообщение
Двухзначное число тоже будет правильно обработано тем кодом, который разбивает текст на части по 4 символа. Если, конечно, под двухзначным подразумевается исходное число.
Да, именно двухзначное число, кратное 2ум!


Цитата Сообщение от Mawrat Посмотреть сообщение
Тот алгоритм правильно обработает любое количество символов. Если, например, мы используем код с числом 4, то если в исходном тексте количество символов не кратно 4-ём, то в последней строке результата количество символов будет меньше 4-ёх.
---
Там можно вписывать любое положительное число. Таким образом, можно разбивать текст по 1, по 2, по 3 и т. д., символов.
Я, наверное не сразу обьяснил что я не знаю точное к-во цифр которые введет пользователь. 4 или 2 или 10. Тобишь не могу сразу написать на какое к-во нужно разбить!!
0
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886
27.03.2012, 01:18
Вам надо Разбить число пополам?

Delphi
1
2
3
4
5
6
7
8
9
10
procedure TForm1.Button1Click(Sender: TObject);
var
  S : String;
begin
    Memo1.Clear;
    S:=Edit1.Text;
    Memo1.Lines.Add(Copy(S,1,length(S) div 2)) ;
    Delete(S,1,length(S) div 2);
    Memo1.Lines.Add(S);
end;
1
 Аватар для Arcor
5709 / 2300 / 466
Регистрация: 20.11.2009
Сообщений: 7,721
Записей в блоге: 1
27.03.2012, 01:21
Цитата Сообщение от GreatDan Посмотреть сообщение
Я, наверное не сразу обьяснил что я не знаю точное к-во цифр которые введет пользователь. 4 или 2 или 10. Тобишь не могу сразу написать на какое к-во нужно разбить!!
ну значит нужно пройтись по всем делителям и если остаток равен 0, тогда разложить на столько частей

например введем 6 цифр, 123456, можно разложить как
Code
1
2
3
4
1 раз по 6   -> 123456
2 раза по 3  -> 123 456
3 раза по 2  -> 12 34 56
6 раз по 1   -> 1 2 3 4 5 6
тогда с нечетным кол-вом как?

например так: введем 5 цифр 12345

Code
1
2
2 и 3 -> 12 345
3 и 2 -> 123 45
ну и так далее по аналогии
или вообще не в эту степень я клоню???
1
0 / 0 / 0
Регистрация: 14.12.2011
Сообщений: 6
27.03.2012, 01:37  [ТС]
Цитата Сообщение от Arcor Посмотреть сообщение
ну и так далее по аналогии
или вообще не в эту степень я клоню???
Ну это ясно. )))) Нет, я просил помощи с кодом именно )

Есть свои наработки по поводу вывода разделенного числа когда оно кратно двум. А вот если не кратно, то пока не понял)
0
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886
27.03.2012, 03:35
Цитата Сообщение от Mawrat Посмотреть сообщение
Например:

Исходный текст:
12345678912345
Результат:
1234
5678
9123
45
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
procedure TForm1.Button1Click(Sender: TObject);
var
  S:String;
  temp:String;
  i,k,N:Integer;
begin
    S:=Edit1.Text;  k:=0;Memo1.Clear;
 
    N:=4;  //Это N вы расчитываете как угодно. Это число на которое будут разбиты строки
    for i:=0 to Length(S) div N do Memo1.Lines.Add(''); {Подгатавливаем  Memo}
 
     {Делаем строки по N символов }
     for i:=1 to length(S) do Begin
         temp:=Copy(S,k+1,N);
         Memo1.Lines.Strings[i-1]:=temp;
         inc(k,N);
     end;
end;
 
end.
Если число двухзначное, то оно не будет разбито. Если N берется из длины числа., (Например N = половина длины) , то в коде просто поставить нужно формулу расчета N
Delphi
1
N:=length(S) div 2
т.е. разбивайте как удобно

Вам вот похоже это нужно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.03.2012, 03:35
Помогаю со студенческими работами здесь

Edit Memo Массив Добовление удаление с Memo исходя из введеных данных в Edit
Помогите реализовать такое вот задание: Есть форма на которой присутствуют Memo1 Edit1 Button1 В эдит1 заносим допустим A; и в мемо1...

Разбить текст в Memo на страницы и пронумеровать их
добрый вечер програмеры ,с праздником вас всех есть такая задача загрузить в мемо текст из файла ,если текст в файле сликом большой то...

Текст из edit в memo построчно
Добрый день. У меня проблема, не могу написать код, чтобы каждое следующее добавленное слово писалось с новой строки в memo. Даны: edit1,...

Разбить текст в Edit по признаку
В Edit есть набор символов. Например &quot;Part1.Common.&quot;. Как лаконичней вычленить из содержимого отдельно Part1 и отдельно Common для...

Скопировать по символьно текст из Memo в Edit
Задача такая надо скопировать из Memo по одной букве включая запятые, точки и пробел тоже в Edit. к примеру в Memo записан текст 'Я иду',...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru