Как разделить длинную строку на «завернутые» строки? - PullRequest
0 голосов
/ 03 марта 2011

Как это сделать в Delphi?

У меня очень длинная строка.Мне нужно обернуть жало каждые 5 букв и добавить точку в конце завернутой строки.

Пример строки:

ssssssssssssssssssssssssssssssssssssssssssssssssssssssssss

Результат:

sssss. 
sssss. 
sssss. 
sssss.

Ответы [ 4 ]

7 голосов
/ 03 марта 2011

Ваш учитель, вероятно, хочет, чтобы вы выучили достаточно паскаля, чтобы написать что-то вроде этого:

 loop through the characters in the string
   get a character from the string and add it to another string
   check if five letters have gone by, and if so, 
      add a dot and a carriage-return-and-linefeed character.
 end loop
4 голосов
/ 03 марта 2011
uses SysUtils;

Result := WrapText(s, '.'^M^J, [], 5);

Но будьте осторожны с этим примечанием из документации :

WrapText не вставляет разрыв во встроенную строку в кавычках.

0 голосов
/ 03 марта 2011

Этот работает только в последних версиях Delphi:

  for c in s do
  begin
    Write(c);
    if i mod maxSize=maxSize-1 then
      WriteLn('.');
    inc(i);
  end;

Перебор всех символов

  for i := 1 to length(s) do
  begin
    Write(s[i]);
    if i mod maxSize=0 then
      WriteLn('.');
  end;

Копировать куски

  for i := 0 to length(s) div maxSize do
    WriteLn(Copy(s,1+i*maxSize,maxSize),'.');
0 голосов
/ 03 марта 2011

Что-то вроде следующего:

while Length(s) > 0 do
begin
  Result := Result + '. ' + Copy(s, ...);
  Delete(s, ...);
end;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...