Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
14-94107
Ru
2004-02-10 10:49
2004.02.29
Русский Линакс


1-93970
semensoft
2004-02-17 14:09
2004.02.29
Изменение размеров jpg


1-93924
К.К.С.
2004-02-18 15:27
2004.02.29
Строка и мемо


1-93904
Rude
2004-02-15 22:03
2004.02.29
Как посчитать CRC какого то файла в Windows


1-93840
neteditor
2004-02-16 16:44
2004.02.29
TXMLDocument и русские буквы





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский