Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.02.29;
Скачать: CL | DM;

Вниз

Вопрос знатокам, по поводу 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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.017 c
14-94189
_none_
2004-02-05 15:41
2004.02.29
лучше боулинг -)


4-94251
Невозмутимый
2003-12-23 15:43
2004.02.29
НООК? !


1-93872
Ricko
2004-02-16 11:49
2004.02.29
АвтоСкролл в Listview


9-93747
Mop
2003-04-14 05:27
2004.02.29
Omega Components


6-94066
dolphin1
2003-11-28 17:46
2004.02.29
ICQ