Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

TStringList [D2005, 2003]


KyRo ©   (2006-03-15 10:27:00) 

Подскажите почему может при загрузке из файла данных  в список
у меня теряется первый символ каждой строки

//Читаем значение списка файлов
  ListFile.LoadFromFile('fn.tmp');

FileName:= ListFile.ValueFromIndex[i];
      Ini.WriteInteger(FileName,'ProcesID',0);


Ega23   (2006-03-15 11:44:00) [1]


> Но по коду и так всё ясно )


Не совсем было понятно, почему +2 и что за Names.
Теперь, конечно, всё ясно...  :о)


clickmaker   (2006-03-15 11:33:00) [2]


> Ega23 ©   (15.03.06 11:26) [15]

Represents the value part of a string with a given index, on strings that are name-value pairs.

Delphi syntax:

property ValueFromIndex[Index: Integer]: string;

C++ syntax:

__property AnsiString ValueFromIndex[int Index] = {read=GetValueFromIndex, write
=SetValueFromIndex};;

Description

When the list of strings for the TStrings object includes strings that are name-value pairs, use ValueFromIndex to get or set the value part of a string associated with an index.

For more information on name-value pairs, refer to the NameValueSeparator property.

Но по коду и так всё ясно )


Ega23   (2006-03-15 11:26:00) [3]


> clickmaker ©   (15.03.06 11:24) [12]


А справку по методу можешь выложить? А то у меня D5.


Сергей М.   (2006-03-15 11:25:00) [4]


> KyRo


Метод ValueFromIndex имеет смысл только для списка строк, каждая из которых имеет структуру

NAME=VALUE

А твои строки по структуре не соответствуют этому требованию


Ega23   (2006-03-15 11:24:00) [5]


> Что ты имееш в виду ?


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


clickmaker   (2006-03-15 11:24:00) [6]


> KyRo   (15.03.06 11:12) [7]

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


KyRo   (2006-03-15 11:23:00) [7]


> Просто у кого-то проблемы с логикой и нет желания читать
> документацию.

Что ты имееш в виду ?


KyRo   (2006-03-15 11:22:00) [8]

Проверил
List.Strings[i]; дает нормальный результат на выходе получаю

D:\tmplog\edclocal(5).dat

А метод
ListFile.ValueFromIndex[i];
тоже самое выдает


> :\tmplog\edclocal(5).dat

Из за чего это может быть понятия не имею !!!


Плохиш   (2006-03-15 11:21:00) [9]


> KyRo   (15.03.06 11:12) [7]
> List.Strings[i]; щас попробую так может тот метод с глюком

Просто у кого-то проблемы с логикой и нет желания читать документацию.


Ega23   (2006-03-15 11:17:00) [10]


> так может тот метод с глюком


Я в этом ОЧЕНЬ СИЛЬНО сомневаюсь.


KyRo   (2006-03-15 11:12:00) [11]

List.Strings[i]; щас попробую так может тот метод с глюком


KyRo   (2006-03-15 11:10:00) [12]


> наверно это в Д2003 аналог Values[Name], но по индексу

нет это делфи 7 -й

В файле находится следующее

D:\tmplog\edclocal(14).dat
D:\tmplog\edclocal(6).dat
D:\tmplog\edclocal(7).dat
D:\tmplog\edclocal(8).dat
D:\tmplog\edclocal(9).dat
D:\tmplog\edclocal(10).dat
D:\tmplog\edclocal(11).dat
D:\tmplog\edclocal(12).dat
D:\tmplog\edclocal(13).dat


я считываю список этих строк в стринг лист
а потом формирую ини файл с настройками вот таким образом


 For i:= 0 to ListFile.Count -1 do
   Begin
      FileName:= ListFile.ValueFromIndex[i];
      Ini.WriteInteger(FileName,'ProcesID',0);
      Ini.WriteString(FileName,'ProcesStatus','Null');
      Ini.WriteString(FileName,'StatusOp','Wake');
      end;


На выходе получаю ини файл


[:\tmplog\edclocal(14).dat]
ProcesID=0
ProcesStatus=Null
StatusOp=Wake
[:\tmplog\edclocal(6).dat]
ProcesID=0
ProcesStatus=Null
StatusOp=Wake
[:\tmplog\edclocal(7).dat]
ProcesID=0
ProcesStatus=Null
StatusOp=Wake


И вот в нем первого символа в каждой строке переданой из списка нет !!!
Почему это может быть не пойму.


clickmaker   (2006-03-15 10:37:00) [13]


> Ega23 ©   (15.03.06 10:32) [2]
>
> > ValueFromIndex[i];
>
>
> Чё это за метод такой странный???

наверно это в Д2003 аналог Values[Name], но по индексу


Dmitrij_K   (2006-03-15 10:34:00) [14]

Построчно файл читается так
StringList[0]
StringList[1]
...


Dmitrij_K   (2006-03-15 10:33:00) [15]

Что находится в файле fn.tmp?
Определил .Delimiter?


Сергей М.   (2006-03-15 10:32:00) [16]

Как это "теряется" ? На основании чего сделан такой вывод ?
Поясни ..


Ega23   (2006-03-15 10:32:00) [17]


> ValueFromIndex[i];


Чё это за метод такой странный???


Наверх

Титульная страница Поиск, карта сайта Написать письмо