![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 23.03.2009
Сообщений: 85
|
![]()
Добрый день уважаемые программисты, появился вопрос помогите пожалуйста разобраться. Работа со строками, есть допустмим для примера Блэклист в формате тхт:
bebo.com copainsdavant.linternaute.com facebook.com facebook.fr linkedin.com linkedin.fr myspace.com orkut.com orkut.li twikeo.com vkontakte.ru и так далее.... вобщем строк около 200000))), как сделать так чтобы оставить только домены заканчивающиеся на .ru а остальные и пустые строки удалить? написал код: Код HTML:
var source : TStringList; i : integer; begin source := TStringList.Create; source.LoadFromFile('domains.txt'); for i := 1 to source.Count -1 do begin if Pos('.ru',source.Strings[i])<>0 then source.Delete(i); source.SaveFromFile('domains.txt'); end; end; |
![]() |
![]() |
![]() |
#2 |
кривокодер ;)
Форумчанин
Регистрация: 20.06.2008
Сообщений: 707
|
![]()
если предполагается "прогулка" по списку с удалением строк, то нужно использовать не for..to..do, а for..downto..do с последнего до первого итема.
list index out of bounds(число) уже предполагает, что Вы обратились по номеру, индекс которого больше количества итемов. в остальном мысль верна. правда, удобнее будет такой вариант, когда есть ДВА стрингЛиста. при совпадении условия строка из первого добавляется во второй. второй сохраняется. вот Вам и новый список.
"А как написать праграму?, "ришыти задачьку очинь нада" ©с форума. Жить становится интереснее, жить становится веселее...
{Быть или не быть} {Неуспешный суицид} Последний раз редактировалось Johnson; 15.03.2011 в 20:10. |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 31.01.2011
Сообщений: 54
|
![]() Код:
|
![]() |
![]() |
![]() |
#4 |
кривокодер ;)
Форумчанин
Регистрация: 20.06.2008
Сообщений: 707
|
![]()
Алекс, Вы не прочитали проблему... ) Ошибка врядли актуальна, ТС скорее всего подправлял код прямо в браузере, потому и ошибся.
"А как написать праграму?, "ришыти задачьку очинь нада" ©с форума. Жить становится интереснее, жить становится веселее...
{Быть или не быть} {Неуспешный суицид} |
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 23.03.2009
Сообщений: 85
|
![]()
переписал код так.....
Код:
________ Код нужно оформлять по правилам: тегом [CODE]..[/СODE] (это кнопочка с решёточкой #) Не забывайте об этом! Модератор. Последний раз редактировалось Serge_Bliznykov; 16.03.2011 в 08:52. |
![]() |
![]() |
![]() |
#6 | |
Тот ещё
Старожил
Регистрация: 14.11.2007
Сообщений: 2,242
|
![]()
1. В первом варианте ошибка в том, что цикл нужно начинать с 0.
2. В первом варианте ошибка в том, что вы работаете со списком ч/з for Цитата:
3. И в первом и во втором варианте ошибка в том, что SaveToFile стоит внутри цикла (м/у begin...end). Я бы сделал так Код:
|
|
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 23.03.2009
Сообщений: 85
|
![]()
всем спасибо за помощь, тему можно закрывать.
|
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
Sibedir, отлично. Только "оставить только домены заканчивающиеся на .ru "
т.е. наоборот, надо удалять те, где Pos ('.ru') = 0 но, просто хочу сказать, что если написать правильно, то можно и FOR использовать: Код:
Код:
это не совсем корректно. 1) не будут обработаны строчки в ВЕРХНЕМ регистре (т.е. домен MAIL.RU будет удалён, как не содержащий '.ru') 2) останутся домены, где домены внутренние начинаются с ru (например, www.ruby.com) Последний раз редактировалось Serge_Bliznykov; 16.03.2011 в 09:02. |
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 24.01.2011
Сообщений: 774
|
![]() Код:
a.k.a. Angelicos Phosphoros
Мой сайт |
![]() |
![]() |
![]() |
#10 |
кривокодер ;)
Форумчанин
Регистрация: 20.06.2008
Сообщений: 707
|
![]()
И ещё... я бы хотел заметить, что хорошим тоном является
Код:
"А как написать праграму?, "ришыти задачьку очинь нада" ©с форума. Жить становится интереснее, жить становится веселее...
{Быть или не быть} {Неуспешный суицид} |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Удаление строк | Trimbl | Microsoft Office Excel | 13 | 18.10.2010 13:19 |
удаление по маске | Сергей 2289 | Microsoft Office Excel | 0 | 01.10.2010 10:07 |
перенос строк удаление ненужных строк | HelperAwM | Microsoft Office Excel | 5 | 26.06.2010 18:42 |
Перемещение и удаление файлов по маске. | Putin-mode | Помощь студентам | 0 | 04.06.2010 15:39 |
удаление строк | Dime_x | Microsoft Office Excel | 2 | 07.10.2008 13:38 |