Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Удаление сток в файле / 10 сообщений из 10, страница 1 из 1
26.10.2018, 21:10
    #39723784
devious
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление сток в файле
Подскажите, не как не соображу
Набросал уод удаления строк в файле до нужной строки
Код: pascal
1.
2.
3.
4.
5.
6.
7.
for I1 := 0 to s.Count -1   do begin
   if s.Strings[I1] <> '        <span id="ctl00_PlaceHolderMain_wikiPageNameDisplay" style="display: none;">' then
    s.delete(i) else
    break;
  end;
s.SaveToFile
S.free;



Но при выполнении возникает list of bounds
Не пойму почему
...
Рейтинг: 0 / 0
26.10.2018, 21:16
    #39723787
Любезный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление сток в файле
1. Оборачивай код в теги code и нормально форматируй.
2. Такое поведение естественно, так как при удалении строки индексы последующих строк сдвигаются, а число Count вычисляется только один раз в начале цикла. Поэтому при таком поиске с удалением столь большого числа строк нужно начинать поиск не с первой строки, а с последней.
...
Рейтинг: 0 / 0
26.10.2018, 21:46
    #39723795
devious
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление сток в файле
Любезный,

С конца, согласен, но не соображе, как мне удалить строки вмначале файла до нужно строки, конец как раз нужен
...
Рейтинг: 0 / 0
26.10.2018, 22:04
    #39723796
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление сток в файле
deviousне соображе

RTFM for ... downto.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
26.10.2018, 22:11
    #39723798
Любезный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление сток в файле
Значит, for тебе не пойдет. Организуй цикл с goto. :)
...
Рейтинг: 0 / 0
26.10.2018, 22:20
    #39723800
Любезный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление сток в файле
Как-то так:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
label lab;
... 
 lab:
 if s[0] <> ' <span id="ctl00_PlaceHolderMain_wikiPageNameDisplay" style="display: none;">' 
  then begin
           s.delete(0);
           goto lab;
         end;
...


Только не забудь сделать копию файла для проверки, а то похеришь файл.
...
Рейтинг: 0 / 0
26.10.2018, 22:23
    #39723801
devious
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление сток в файле
Любезный,

Спасибо, сообразил
А файл копируется обязательно :)
...
Рейтинг: 0 / 0
26.10.2018, 22:27
    #39723802
s62
s62
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление сток в файле
deviousЛюбезный,

С конца, согласен, но не соображе, как мне удалить строки вмначале файла до нужно строки, конец как раз нужен
Код: pascal
1.
2.
3.
4.
5.
while (s.Strings[0] <> ' <span id="ctl00_PlaceHolderMain_wikiPageNameDisplay" style="display: none;">')
  and (s.Count > 0) do
s.delete(0) 
s.SaveToFile
S.free;


Но если в сравниваемой строчке какое-то расхождение с искомой, например лишний пробел, то так все строки и поудаляете.
...
Рейтинг: 0 / 0
26.10.2018, 23:08
    #39723810
s62
s62
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление сток в файле
s62,
только поменять условия местами.
...
Рейтинг: 0 / 0
26.10.2018, 23:26
    #39723811
Dmitry Arefiev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление сток в файле
devious,

Как обычно один вопрос - а зачем ?
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Удаление сток в файле / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]