Показать сообщение отдельно
  #2  
Старый 09.04.2014, 17:53
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Я бы здесь вообще не делал бы внешний цикл (тот который проходится по номерам классов). Просто проходишься одним циклом по строкам грида, вынимаешь из строки число и добавляешь в дерево в соответствующую категорию, а если не получилось вынуть число из строки - добавляешь в группу "Другие классы".
Осталось только написать функцию, которая пытается вынуть из начала строки число. Вот она:
Код:
function TryGetInt(const Str: String; out Int: Integer): Boolean;
var
  i: Integer;
begin
  i := 1;
  while (i <= Length(Str)) and (Str[i] in ['0'..'9']) do Inc(i);
  Result := TryStrToInt(Copy(Str, 1, i - 1), Int);
end;
Ответить с цитированием