Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 07.04.2019, 09:04
Alex7 Alex7 вне форума
Новичок
 
Регистрация: 18.09.2018
Сообщения: 62
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Как разделить текстовую строку

Здравствуйте, есть строка, например:
ljkhhuIUYyhiygYGY765877........................... ....................и т.д.
Строка больше 500 символов.
Как разделить её на строки по 10 символов.
То есть чтобы получилось:
ljkhhuIUYy
hiygYGY765
877.......
и т.д.
Использую Delphi 7
Если есть возможность, дайте пожалуйста кусок кода.
Заранее благодарю.
Ответить с цитированием
  #2  
Старый 07.04.2019, 09:32
Аватар для Guaho
Guaho Guaho вне форума
Начинающий
 
Регистрация: 27.08.2017
Сообщения: 173
Версия Delphi: Delphi7
Репутация: 10
По умолчанию

Заряжаете цикл на длину большой строки. Внутри цикла делаете счётчик символов для "коротких" строк. Счётчик переполнился - заново инициализируете его, а полученную строку сбрасываете, например, в Memo.
Ответить с цитированием
  #3  
Старый 07.04.2019, 09:35
Alex7 Alex7 вне форума
Новичок
 
Регистрация: 18.09.2018
Сообщения: 62
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Здпавствуйте Guaho, а нельзя ли Ваш ответ увидеть хотя бы в примере кода?
Ответить с цитированием
  #4  
Старый 07.04.2019, 15:16
Аватар для Kailon
Kailon Kailon вне форума
Активный
 
Регистрация: 06.06.2010
Сообщения: 339
Версия Delphi: 10.4
Репутация: 429
Сообщение

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  I, J: Word;
  Str, Tmp: String;
begin
  Memo1.Clear; // очищаем поле для вывода
  Str := Edit1.Text; // исходная строка
  while Length(Str) > 10 do // пока длина исходной строки больше 10 символов
    begin
      Tmp := Copy(Str, 1, 10); // копируем во временную строку по 10 символов
      Memo1.Lines.Add(Tmp); // выводим их в Memo
      Delete(Str, 1, 10); // отрезаем от исходной строки 10 символов
    end;
  Memo1.Lines.Add(Str); // выводим остаток строки
end;
__________________
Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете.
Ответить с цитированием
Этот пользователь сказал Спасибо Kailon за это полезное сообщение:
Alex7 (08.04.2019)
  #5  
Старый 08.04.2019, 04:24
lmikle lmikle сейчас на форуме
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,004
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

А зачем удалять? Если по 10 символов, то можно просто копировать:
Код:
var
  S : String;
  I : Integer;
begin
  S := Edit1.Text; // source value
  Memo1.Libnes.Clear; // clear output
  For I := 0 To (Length(S) div 10) Do
    MEmo1.Lines.Add(Copy(S,I*10+1,10);
end;
Ответить с цитированием
Этот пользователь сказал Спасибо lmikle за это полезное сообщение:
Alex7 (08.04.2019)
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 19:10.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter