Texnar | Дата: Воскресенье, 22.03.2009, 02:34 | Сообщение # 1 |
Знакомый
Группа: Пользователи
Сообщений: 16
Статус: Offline
| Собственно сабж. При каких условиях возникает данная ошибка? Причем данное сообщение об ошибки выскакивает только в одной из процедур. Давно не сталкивался с этим. Как бороться?
|
|
| |
Seqular | Дата: Воскресенье, 22.03.2009, 10:22 | Сообщение # 2 |
Хранитель
Группа: Администраторы
Сообщений: 859
Статус: Offline
| Texnar, А можно код в студию? ) чтобы лучше можно было объяснить происхождение ошибки
Поддерживаю также проект сообщество молодых сисадминов
|
|
| |
Texnar | Дата: Воскресенье, 22.03.2009, 22:14 | Сообщение # 3 |
Знакомый
Группа: Пользователи
Сообщений: 16
Статус: Offline
| Code procedure zapisprefix(var mas_zna: zna; var firma_file,ks,prefix:text; var i:integer; var vrem:mvrem; var comp:mcomp); var f_k,firma,firmatemp: str; simvol: sim; str_zna,temp,number,str_zna2,tempcomp: str; stime: string[10]; code,k,z,b,qwerty: integer; time: longint; prov,prov2,prov3,prov99: boolean; begin prov3:=false; prov2:=false; reset(prefix); str_zna:=''; str_zna2:='';
if mas_zna[3]<>'0' then
begin f_k:=mas_zna[1]+','+mas_zna[2]; stime:=mas_zna[3]; val(stime,time,code);
for z:=1 to 3 do
begin write(firma_file,mas_zna[z]+','); mas_zna[z]:=''; end;
writeln(firma_file); str_zna:=f_k; firma:=copy(str_zna,1,pos(',',str_zna)); delete(str_zna,1,pos(',',str_zna)); str_zna2:=str_zna;
prov99:=false;
while (not length(str_zna2)=0) or (prov99=true) do
begin
while not seekeof(prefix) do
begin simvol:=''; temp:=''; number:=''; tempcomp:='';
while simvol<>',' do
begin read(prefix,simvol); tempcomp:=tempcomp+simvol; end;
simvol:='';
while simvol<>',' do
begin read(prefix,simvol); temp:=temp+simvol; end;
delete(temp,pos(',',temp),1);
if (firma=tempcomp) and (str_zna2=temp) then
begin simvol:='';
while simvol<>',' do
begin read(prefix,simvol); number:=number+simvol; end;
delete(number,pos(',',number),1); str_zna:=number; readln(prefix); prov2:=true; prov99:=true; end
else
begin
if (temp=str_zna2) and (prov2=false) and (prov3=false) then
begin simvol:='';
while simvol<>',' do
begin read(prefix,simvol); number:=number+simvol; end;
delete(number,pos(',',number),1); str_zna:=number; readln(prefix); prov3:=true; prov99:=true; end
else
begin readln(prefix); end;
end; end; qwerty:=length(str_zna2); delete(str_zna2,qwerty,1); end;
insert(firma,str_zna,1);
prov:=false;
for k:=1 to N do
begin
if comp[k]=str_zna then
begin vrem[k]:=vrem[k]+time; prov:=true end;
end;
if (prov=false) then
begin comp[i]:=str_zna; vrem[i]:=time; str_zna:=''; i:=i+1; end;
end;
end; } Вот в данной процедуре возникает. Не помню из-за чего возникает она.
Сообщение отредактировал Seqular - Воскресенье, 22.03.2009, 22:46 |
|
| |
Seqular | Дата: Воскресенье, 22.03.2009, 22:47 | Сообщение # 4 |
Хранитель
Группа: Администраторы
Сообщений: 859
Статус: Offline
| Сама по себе эта процедура немного скажет.. Полный код был бы лучше с описанием типов данных, так как остается лишь гадать что за типы: zna, mvrem и т.д...
Поддерживаю также проект сообщество молодых сисадминов
|
|
| |
Texnar | Дата: Понедельник, 23.03.2009, 02:28 | Сообщение # 5 |
Знакомый
Группа: Пользователи
Сообщений: 16
Статус: Offline
| http://slil.ru/27322155 Ну как бы вот. Только не обращайте внимание на не которые нелепости в данной программе. Писалась очень быстро, т.к. нужна была срочна одна из частей программы, а теперь пока не доходят руки привести в нормальный вид
|
|
| |
Seqular | Дата: Понедельник, 23.03.2009, 14:39 | Сообщение # 6 |
Хранитель
Группа: Администраторы
Сообщений: 859
Статус: Offline
| Texnar, Не пойдет ) Кидай все, что связано с этой программой. Так как там для проверки нужно скармливать кое-какие файлы. А их у меня нет. Понимаешь? Мне нужно все, чтобы я смог вызвать такую же ошибку у себя и исправить ее.... А насчет слабых мест.. .Их действительно много ) Не помешало бы кое-где подлатать
Поддерживаю также проект сообщество молодых сисадминов
|
|
| |
Texnar | Дата: Четверг, 26.03.2009, 02:38 | Сообщение # 7 |
Знакомый
Группа: Пользователи
Сообщений: 16
Статус: Offline
| мда тогда лучше сам как нибудь разберусь. Входные файлы огромны) Спасибо)
|
|
| |
Seqular | Дата: Пятница, 27.03.2009, 10:33 | Сообщение # 8 |
Хранитель
Группа: Администраторы
Сообщений: 859
Статус: Offline
| Ну целиком же не обязательно кидать. Хотябы фрагмент... Запусти программу в режиме отладки, поставь breakpoint в проблемном месте, просмотри, какие переменные сбоят... Ну в общем стандартная процедура поиска ошибки.
Поддерживаю также проект сообщество молодых сисадминов
|
|
| |