Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.01.2009, 12:16   #1
KVANTOM
Пользователь
 
Аватар для KVANTOM
 
Регистрация: 04.01.2009
Сообщений: 20
Вопрос Не могу найти ошибку .

Здраствуйте уважаемые гуру-програмисты !
Хочу обратиться к вам зо советом.
Есть у меня процедурка для работы с файлами .
Код:
var
flag,fak: boolean;
i,col_fil,s_fil,go,int,y,d,k,j,e,one,two :integer;
g:string;
begin
if Edit1.Text='0' then
begin
Form4.Show;
Showmessage('Ввыберите путь для сохранения файлов !');
end
else
begin
if files.Count = 0 then
showmessage('Вы не выбрали файлы для дальнейшей работы проги!')
else
begin
if Form2.Memo1.Text='Введите слова для обработки файлов' then
begin
showmessage('Виберите или создайте схему');
Form2.Show;
end
else
begin
memo12:=TStringlist.Create;
resul:=TStringlist.Create;
text:=TStringlist.Create;
col_fil:=files.Items.Count;
s_fil:=sxema1.Items.Count;
Memo12.Clear;
Form5.Show;
Form5.firs.Min:=0;
Form5.firs.Max:=col_fil;
Form5.firs.Position:=0;
Form5.second.Min:=0;
Form5.second.Max:=text.Count;
Form5.second.Position:=0;

if Form2.Memo2.Lines.Count = 0 then
   begin
         for i:=0 to col_fil-1 do
           begin
            memo1.lines.Add('===============');
            memo1.lines.Add(inttostr(i));
            memo1.lines.Add('---------------');
            Form5.firs.Position:=i;
            text.LoadFromFile(files.Items.Strings[i]);
            flag:=false;
             for y:=0 to text.Count-1 do
              begin
               Form5.second.Position:=y;
               application.ProcessMessages;
               if (copy(text.Strings[y], 1, 1)='[') then
                begin
                 if (pos(url.Items.Strings[0], text.Strings[y])=0) then
                 flag:=false
                 else
                 flag:=true;
                 end;
                if flag then
                resul.Add(text.Strings[y]);
               end;
                 for int:=0 to resul.Count-1 do
                  begin
                   for go:=0 to s_fil-1 do
                    begin
                     if pos(sxema1.Items.Strings[go], resul.strings[int])=0 then
                      begin
                       flag:=false;
                      end
                      else
                      flag:=true;
                      if flag then
                       begin
                        memo1.Lines.Add(resul.Strings[int]);
                       end;
                   end;

                        for  d:=0 to memo1.Lines.count-1 do
                           begin
                            for k:=1 to memo1.Lines.Count-1 do
                              begin
                               if memo1.Lines[d]=memo1.Lines[k] then
                               memo1.Lines.delete(k)
                              end;
                           end;
                             for e:=0 to memo1.lines.count-1 do
                              begin
                               if pos('%',memo1.Lines.Strings[e])>0 then
                               memo1.Lines.Delete(e);
                              end;
  memo1.lines.Add('---------------');
  memo1.lines.Add('===============');
  memo1.Lines.SaveToFile(Edit1.Text+inttostr(i)+'.txt');
  end;
end;
end;
memo1.Lines.Clear;
resul.Clear;
end;
end;
end;
text.Clear;
memo12.clear;
memo12.free;
resul.Free;
url.Clear;
sxema1.Clear;
files.Clear;
text.Free;
Form5.Close;
end;
Так вот.Эта процедурка должна работать с текстовыми файлами, (открывать, потом проводить аназил-очистку и сохранять результат).
Проблема в том , что записи :
Код:
         memo1.lines.Add('===============');
            memo1.lines.Add(inttostr(i));
            memo1.lines.Add('---------------');
и
Код:
  memo1.lines.Add('---------------');
  memo1.lines.Add('===============');
должны выводиться на начеле файла и в конце. А выходит так
Код:
===============
---------------
Тут текст
98
---------------
===============
или
вообще так
Код:
===============
Тут тоже текст
---------------
99
Тут текст
---------------
===============
. Когда работае с многими файлами ,то выбивает ошибку,
может не те переменные использую. Кто знает как сделать правиль, подскажите как .
Спасибо за внимание !

Последний раз редактировалось KVANTOM; 08.01.2009 в 12:21.
KVANTOM вне форума Ответить с цитированием
Старый 08.01.2009, 12:39   #2
KORN
Банхаммер
Участник клуба
 
Аватар для KORN
 
Регистрация: 17.02.2007
Сообщений: 1,754
По умолчанию

memo12.clear; нафиг не надо перед уничтожением, ну так вынеси
memo1.lines.Add('---------------');
memo1.lines.Add('===============');
за цикл
Перед тем как спросить ищи на форуме и в GOOGLE

Последний раз редактировалось KORN; 08.01.2009 в 12:44.
KORN вне форума Ответить с цитированием
Старый 08.01.2009, 17:15   #3
KVANTOM
Пользователь
 
Аватар для KVANTOM
 
Регистрация: 04.01.2009
Сообщений: 20
По умолчанию

Всё , нашел, исправил.
Модераторы, пожалуйста , удалите тему.
KVANTOM вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль, не могу найти ошибку в программе Julinja Помощь студентам 2 17.11.2008 20:42
Лаба по программированию. Не могу найти ошибку((( KrL^^ Помощь студентам 3 08.10.2008 14:49
Не могу найти ошибку! Эдуард Общие вопросы C/C++ 7 27.02.2008 16:34
Паскаль. Не могу найти ошибку. Нужна помощь! Nexx Помощь студентам 10 06.12.2007 19:12