Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.05.2012, 12:21   #1
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
Вопрос Заполнить динамический массив через while

Не получается заполнить динамический массив через while. Не знаю где и как правильно задать длину массива. Помогите, пожалуйста.
Код:
type
  TFileList = record
    sFile: string;
    Hash: string;
  end;

var
  Form1: TForm1;
  FileList: array of TFileList;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  s: string;
begin
  s := 'File1.txt:AS;File2.txt:AD;File3.txt:AF;File4.txt:AG;';

  SetLength(FileList, 0);

  while Pos(':', s) <> 0 do
  begin
    FileList[Length(FileList)].sFile := Copy(s, 1, Pos(':', s) - 1); // Путь к файлу
    Delete(s, 1, Pos(':', s));
    FileList[Length(FileList)].Hash := Copy(s, 1, Pos(';', s) - 1); // Хэш-сумма файла
    Delete(s, 1, Pos(';', s) + 2);

    SetLength(FileList, Length(FileList) + 1);
  end;
end;
Shouldercannon вне форума Ответить с цитированием
Старый 06.05.2012, 12:38   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  s: string;
  i: Integer;
begin
  s := 'File1.txt:AS;File2.txt:AD;File3.txt:AF;File4.txt:AG;';

  while Pos(':', s) <> 0 do
  begin
    i:=High(FileList)+2;
    SetLength(FileList, i);
    FileList[i-1].sFile := Copy(s, 1, Pos(':', s) - 1); // Путь к файлу
    Delete(s, 1, Pos(':', s));
    FileList[i-1].Hash := Copy(s, 1, Pos(';', s) - 1); // Хэш-сумма файла
    Delete(s, 1, Pos(';', s) + 2);
  end;
end;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамический массив в Record и отправка его через lux16 Работа с сетью в Delphi 2 18.04.2011 15:33
Динамический массив - или всё таки не динамический? vedro-compota Общие вопросы C/C++ 30 10.12.2010 23:22
Заполнить массив mila111189 Помощь студентам 1 04.11.2010 00:09
Как заполнить таблицу БД через форму в Delphi nikta БД в Delphi 10 06.05.2010 17:30
Как правильно передать через ссылку двумерный динамический массив? amerhant Общие вопросы C/C++ 2 21.04.2010 23:50