Форум: "Основная";
Текущий архив: 2004.02.29;
Скачать: [xml.tar.bz2];
ВнизВопрос знатокам, по поводу TStringList Найти похожие ветки
← →
Andy BitOff (2004-02-16 02:18) [0]Почему не работает следующий код;
procedure TForm1.Button1Click(Sender: TObject);
var
StrL:TStringList;
i:integer;
s:string;
begin
StrL:=TStringList.Create;
try
i:=StrL.Add("1"+#13#10+"2"+#13#10+"3");
s:=StrL.Strings[i+2];
finally
StrL.Free;
end;
end;
И в какой момент можно получить s?
← →
Palladin (2004-02-16 02:20) [1]во первых метод Add возвращает индекс добавленной строки, если список не отсортирован Sorted=false, соответственно возвратится значени Count-1 и ты тутже лезешь за границы... ну зачем объсни? Как же он должен работать то?
← →
Palladin (2004-02-16 02:23) [2]
> StrL.Add("1"+#13#10+"2"+#13#10+"3");
и добавляется одна строка, а не три...
← →
Andy BitOff (2004-02-16 02:28) [3]i:=0 после add, а добавляю строку разделенную переновами, т.е. три строки.
При StrL.Sorted:=True; тоже самое. Даже если после add сделать StrL.Sort;
← →
Andy BitOff (2004-02-16 02:31) [4]> и добавляется одна строка, а не три...
Да. Но при StrL.SaveToFile("hh"); сохраняются три стороки.
Вот и хочется узнать в каком момент УЖЕ МОЖНО получить s
← →
Palladin (2004-02-16 02:33) [5]
> i:=0 после add,
я же сказал Count-1 = 0
> добавляю строку разделенную переновами, т.е. три строки
я же сказал "и добавляется одна строка, а не три..."
> При StrL.Sorted:=True; тоже самое.
ну правильно, строка то одна что там сортировать?
> Даже если после add сделать StrL.Sort;
см. выше
← →
Palladin (2004-02-16 02:35) [6]
> Andy BitOff © (16.02.04 02:31) [4]
файл это не объект TStringList, это просто файл. В нем признак разделения строки действительно признак разделения строки. В TStringList строка добавленная через Add так и останется строкой, будь там хоть 15 разделителей, это не больше чем значения Char.
← →
Defunct (2004-02-16 03:21) [7]> Да. Но при StrL.SaveToFile("hh"); сохраняются три стороки.
> Вот и хочется узнать в каком момент УЖЕ МОЖНО получить s
Помните, что String - это массив сиволов, некоторые символы носят специальный характер (возврат каретки, перевод строки, разрыв страницы и т.п.), и все станет на свои места. Хотите 3 строки задайте:
Strl.Add("3");
Strl.Add("2");
Strl.Add("1");
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.02.29;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.008 c