Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.025 c
1-93972
чайник1
2004-02-17 13:17
2004.02.29
Компонент UpdateSQL


1-93912
demoncom
2004-02-15 15:30
2004.02.29
Преобразование даты


3-93790
Zilog
2004-02-03 17:32
2004.02.29
Как во время выполнения проги создать в БДЕ таблицу с ЗАДАННЫМ


1-93914
Артем К.
2004-02-15 10:38
2004.02.29
Градиентная залива региона произвольной формы? Как?


1-93996
stud
2004-02-16 14:31
2004.02.29
справка на русском




   Наверх