Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > Куда пропадает 1 буква?


Автор: Canada 9.1.2010, 08:37
Здравствуйте, у меня такая вот задача:

В TStringList'е сидит название папок
Папка 1
Папка 2
Папка 3 и т.д.

Делаю Createdir ('C:\'+TStringList.ValueFromIndex[N]) - Получаю папки вида "апка 1", "апка 2", "апка 3" и т.д. - вопрос к знатокам, где я ужасно косячу? 
Заранее вам благодарен!

Автор: THandle 9.1.2010, 09:04
Canada, а разделитель NameValue какой?
Или тебе просто надо к элементу обращаться?

Тогда:

StringList.Strings[N]

или

StringList[N]

Посмотри про TStringList http://vvryndin.wordpress.com/2009/12/08/tstringlist/.

Автор: Akella 9.1.2010, 16:06
Цитата(THandle @  9.1.2010,  09:04 Найти цитируемый пост)
Canada, а разделитель NameValue какой?

Скорее всего пробел. Нужно изменить

Автор: Canada 9.1.2010, 16:39
А на что изменить? И в какой момент? Вообще, интересен факт такого не верного значения. В связи с чем такое происходит?

Автор: artsb 9.1.2010, 16:50
Canada, прочтите пост THandle и не мучайтесь ;)

Автор: Canada 9.1.2010, 17:16
Выражаю Вам всем огромную благодарность, т.к. все работает.
Но вот по прежнему интересно, что я делал не так. Чем же так отличается этот ValueFromIndex, что съедает именно 1 символ.

Большое спасибо!

Автор: THandle 9.1.2010, 17:26
Canada, достаточно просто посмотреть в код метода GetValueFromIndex:
Код


function TStrings.GetValueFromIndex(Index: Integer): string;
begin
  if Index >= 0 then
    Result := Copy(Get(Index), Length(Names[Index]) + 2, MaxInt) else
    Result := '';
end;


Если длина имени равна нулю, то копироваться будет со второго символа.

Автор: Canada 9.1.2010, 23:24
 smile  Спасибо большое!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)