![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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];
Чё это за метод такой странный???