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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.03.2013, 19:35   #1
kishka_
Новичок
Джуниор
 
Регистрация: 27.03.2013
Сообщений: 2
По умолчанию Очень нужно!! Паскаль текстовые файлы

Суть программы архиватор
я хочу, чтобы программа архивировала текстовый документ, используя базу данных.
Проблема в том, что программа проверяет 1 строку исходного файла с 1 строкой базы-2 строку исходного файла с 2 строкой базы и т.д.
А мне нужно, чтобы 1 строку исходного файлы проверяла со всеми строками базы-2 строку исходного файла со всеми строками базы и т.д.
Код:
uses crt;
var z,t,e:text;
    p:string;
 
 
 
procedure inputt;
var a,b,c,str,strr:string;
n:char;
ind:integer;
begin
assign(t,'c:\PABCWork\baza.txt');
assign(z,'c:\PABCWork\inp.txt');
assign(e,'c:\PABCWork\out.txt');
reset(t);
reset(z);
reset(e);
rewrite(e);
while not eof(t) do{Может быть проблема где-то тут?}
while not eof(z) do
begin
readln(z,str);
readln(t,strr);
 
 
 
n:='-';
ind:=pos(n,strr);
a:=copy(str,1,50);
b:=copy(strr,1,ind-1);
if a=b then begin
c:=copy(strr,ind+1,50);
write(e,c);
end;
 end;
 
close(t);
close(z);
close(e);
end;
 
 
begin
clrscr;
inputt;
readln;
end.
фото примера внизу
Изображения
Тип файла: png Снимок.PNG (5.9 Кб, 54 просмотров)
kishka_ вне форума Ответить с цитированием
Старый 27.03.2013, 20:48   #2
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

А можно поинтересоваться, какое количество строк находится в базе и сколько примерно строк содержит текстовый файл?

Это к тому, что есть подозрение, что если не принять специальных мера, время работы программы будет исчисляться годами.
s-andriano вне форума Ответить с цитированием
Старый 28.03.2013, 01:22   #3
kishka_
Новичок
Джуниор
 
Регистрация: 27.03.2013
Сообщений: 2
По умолчанию

база может пополняться, так что неизвестно может быть 500 может 1000
и в текстовом файле тоже неизвестно.
время не важно
главное как такой алгоритм сделать?
kishka_ вне форума Ответить с цитированием
Старый 28.03.2013, 06:18   #4
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Вы правильно нашли проблемное место, если бы воспользовались трассировкой (или включили логику) - то и саму проблему бы нашли

Код:
while not eof(t) do begin   {Может быть проблема где-то тут?}
  readln(t,strr);
  reset(z);
  while not eof(z) do begin
    readln(z,str);
    ... 
  end;
  close(z);
end;
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...

Последний раз редактировалось Sciv; 28.03.2013 в 06:23.
Sciv вне форума Ответить с цитированием
Старый 28.03.2013, 13:30   #5
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Ну, если "время не важно", тогда можно и так.
Но, боюсь, это будет подтормаживать даже с такими микроскопическими массивами как 1000 элементов.
s-andriano вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Очень нужно сделать задачу в Delphi(Типизированные файлы. файлы записи) Vitalik1 Помощь студентам 1 16.12.2011 10:38
pascal.текстовые файлы, очень нужно Wustr39 Паскаль, Turbo Pascal, PascalABC.NET 3 22.05.2011 19:47
Текстовые файлы!!!(Очень важно) DomiNik Помощь студентам 4 10.06.2010 15:21
Паскаль. Файлы.Очень нужно....кто сможет! raccel Помощь студентам 1 23.05.2010 10:40
текстовые файлы ОЧЕНЬ НУЖНА ПОМОЩЬ leest Помощь студентам 6 30.01.2008 10:05