Главная страница
    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.57 MB
Время: 0.038 c
4-39637
ddenisv
2003-01-21 18:47
2003.03.13
Service + DLL+Help me


7-39601
Новый
2003-01-15 20:45
2003.03.13
Как определить, а затем изменить размеры рабочего стола?


9-39148
Svin
2002-10-13 11:05
2003.03.13
Спрайты


6-39454
Mutex
2003-01-02 19:09
2003.03.13
Socket


1-39241
First_May
2003-02-28 10:55
2003.03.13
Инсталятор...





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