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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 25.03.2012, 16:31
Пионер Пионер вне форума
Прохожий
 
Регистрация: 16.02.2012
Адрес: Оренбург
Сообщения: 40
Версия Delphi: 7
Репутация: 10
По умолчанию строку символов разместить в N кол-во элементов массива

Подскажите что неправильно!? Мне надо строку символов разместить в N кол-во элементов массива. Каждый элемент массива это строка из 6 символов. Сначала я определяю, какой размер должен иметь массив, потом заполняю его символами, если в последнем элементе не хватает символов до 6, то я добавляю их динамически (в примере это «=»). Вот тут то и ошибка! Хочу протестировать работу программы и вывести последний элемент массива, а он оказывается совсем не таким как надо было!
Код:
var
  T:                               String;
  A:                   array of String[6];
  k, l, i, j:                        Byte;

  T := LE_Source.Text;

  // Определение размера массива
  l := Length(T) div 6;
  if Length(T) mod 6 = 0
    then SetLength(A,l)
    else
      begin
        l := l + 1;
        SetLength(A,l);
        for k := 1 to (6 - (Length(T) mod 6)) do A[l] := A[l] + '=';
      end;

  i := 1;
  j := 6;

  // Заполнение элементов массива
  for k := 1 to l do
    begin
      A[k] := Copy(T,i,j);
      i := i + 6;
      j := j + 6;
    end;

  LE_Result.Text := A[l];
Ответить с цитированием
  #2  
Старый 26.03.2012, 10:03
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

Код:
var
  s: String;
  a: array of String[6];
  i: Integer;
begin
  s:=LE_Source.Text;
  while (Length(s) mod 6)<>0 do s:=s+'=';
  SetLength(a, Length(s) div 6);
  for i:=0 to Length(a)-1 do
    a[i]:=Copy(s, i*6, 6);
  LE_Result.Text:=a[Length(a)-1];
end;
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
Этот пользователь сказал Спасибо NumLock за это полезное сообщение:
Пионер (26.03.2012)
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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