Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.03.13;
Скачать: [xml.tar.bz2];

Вниз

Работа с TStringList   Найти похожие ветки 

 
Berg   (2003-02-28 16:23) [0]

Есть большой текстовый файл, необходимо читать в нем до определенного знака (###) и прочитанную часть обрабатывать, сначала загоняю его в TStringList, потом пыытаюсь с помощью Pos
найти ###, но Pos=0 во всех строках, хотя если указываю #, то тогда находит. Помогите разобраться, может у кого-нибудь есть пример.Спасибо!


 
Переяслов Григорий   (2003-02-28 16:25) [1]

А пример?


 
MBo   (2003-02-28 16:27) [2]

>до определенного знака (###)
это как? все три диеза читаешь или нет?


 
Berg   (2003-02-28 16:32) [3]

L1:=TStringList.Create;
L2:=TStringList.Create;
if OpenDialog1.Execute then
begin
L1.LoadFromFile(OpenDialog1.FileName);
while Pos("###",L1.Strings[i])<>0 do
begin
L2.Insert(i, L1.Strings[i]);
Inc(i);
end;
end;
...
L1.Free;
L2.Free;



 
Berg   (2003-02-28 16:34) [4]

>>MBo © (28.02.03 16:27)
Да, ### - это такой разделитель в тексте


 
Jel   (2003-02-28 16:37) [5]


> while Pos("###",L1.Strings[i])<>0 do
>

Pos будет не равна 0 если "###" найдено в строке.
Следовательно строки в которых нет "###" в список L2 не попадут.


 
Anatoly Podgoretsky   (2003-02-28 16:37) [6]

=0


 
Berg   (2003-02-28 16:46) [7]

Cтроки с ### в L2 не нужны, а ошибка та же все равно "List index of bounds (19806240)"


 
Anatoly Podgoretsky   (2003-02-28 16:49) [8]

Неправильный i


 
Hint   (2003-02-28 16:50) [9]

Правильно Anatoly Podgoretsky рожицу скорчил...
Где проверка на выход из диапазона?!
Вроде такой

while Pos("###",L1.Strings[i])<>0 do
begin
L2.Insert(i, L1.Strings[i]);
Inc(i);
if i = L1.Count - 1 then Break;
end;

И неполохо бы перед циклом i проинициализировать, а то мало ли чего там будет перед циклом...


 
icWasya   (2003-02-28 16:52) [10]

L1.LoadFromFile(OpenDialog1.FileName);
for i:=0 to L1.Count-1 do
if Pos("###",L1[i])<>0 then
L2.Add(L1[i]);


 
han_malign   (2003-02-28 17:08) [11]

Дежавю ;^/, только в прошлом году "##" кажется было...


 
Anatoly Podgoretsky   (2003-02-28 20:09) [12]

han_malign © (28.02.03 17:08)
А в позапрощлом "#", растут знания растут и запросы



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2003.03.13;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.006 c
1-39350
VIB
2003-02-28 16:17
2003.03.13
TBitmap


1-39247
Beglec
2003-03-03 09:53
2003.03.13
Как заставить перегрузиться Explorer в (NT/XP/2000)?


1-39303
cdadmitriy
2003-03-03 10:05
2003.03.13
RichEdit Ограничение Ввода Данных


1-39292
GIL
2003-03-04 04:48
2003.03.13
Динамические массивы и sizeof


1-39353
Мыш
2003-03-01 20:35
2003.03.13
массив tstringlist





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский