Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > Ошибка или с Pos или с delete


Автор: Canada 15.9.2011, 22:31
Здравствуйте.

Помогите, пожалуйста, с моим monkey-кодом. Суть - открыть файл, и удалить все между <begin> и <end>, включая эти операторные скобки.

Код

_Temp.LoadFromFile (_s.Strings[_i]);
    _string:= _Temp.Text;
    _q:= Pos ('<begin>', _string);
    if _q > 0 then
     begin
       _q1:= Pos ('<end>', _string);
       _j:= _q1 - _q;
       Delete(_string,_q, _j+5);
       _Temp.Text:= _string;
       _Temp.SaveToFile(_s.Strings[_i]);
     end;
    _Temp.Free;


Заранее благодарен!

Автор: Keeper89 15.9.2011, 23:03
А что не так?

Автор: Canada 16.9.2011, 01:22
Не знаю. Но у меня не работает:(

Автор: AndreyIQ 16.9.2011, 07:40
Цитата(Canada @ 16.9.2011,  01:22)
Не знаю. Но у меня не работает:(

Все работает
Код

var
  _Temp: TStringList;
  _String:string;
  _q, _q1, _j: integer;
begin
_Temp:= TStringList.Create;
_Temp.LoadFromFile('c:\123321.txt');
    _string:= _Temp.Text;
    _q:= Pos ('<begin>', _string);
    if _q > 0 then
     begin
       _q1:= Pos ('<end>', _string);
       _j:= _q1 - _q;
       Delete(_string,_q, _j+5);
       _Temp.Text:= _string;
       _Temp.SaveToFile('c:\123321_.txt');
     end;
    _Temp.Free;
end;

Автор: Canada 16.9.2011, 11:00
Значит, мой компилятор глючит:( Это еще печальнее.

Автор: Keeper89 16.9.2011, 11:16
Canada, компилятор глючит?  smile 
Ошибку выдает? С какими входными параметрами не работает? Брейкпоинты что показывают?

Автор: Canada 16.9.2011, 12:38
Ошибку не выдает, просто не работает. Т.е. запустил код на компиляцию, указал папку, где файлы обработать надо. Прогресс бар пробежал, все успешно, но внутри файлов, все, как и было прежде. Т.е. файл или не обработался, или не сохранился. Не знаю. Не верю, что не сохранился, т.к. _Temp.SaveToFile(_s.Strings[_i]); не может не работать, да и по дате изменения файла видно, что работа велась. Т.е. не работает мой код.

Автор: Frees 16.9.2011, 12:45
а ты откуда этот код скопировал?
отладчиком пользоваться умеешь?

Автор: Canada 16.9.2011, 14:28
А я не скопировал, я написал сам. Отладчиком - это F7? 

Автор: Frees 16.9.2011, 14:37
>А я не скопировал, я написал сам. 
а что должен делать твой код?

>Отладчиком - это F7? 
и еще F5, F8 и Ctrl+F5 и много других....

Автор: Canada 16.9.2011, 15:32
А я написал в первом посте.

Автор: Keeper89 16.9.2011, 16:41
Можешь ты написать, что идет на входе, что на выходе? Скопируй из отладчика.

Автор: Canada 17.9.2011, 15:47
На входе текст, внутри которого те самые операторные скобки <begin> и <end>, их содержимое и надо удалить. Вместе со скобками. А что скопировать из отладчика? Я просто не понимаю, о чем Вы спрашиваете. :(

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)