Форум: "Начинающим";
Текущий архив: 2011.10.09;
Скачать: [xml.tar.bz2];
ВнизОшибка "Access violation" после импортирования кода. Найти похожие ветки
← →
talim © (2011-06-19 11:49) [0]procedure a1;
const
z:string="|\/ ,.#:;?!"-{}()_&<>";
var
ft,g:boolean;
b:char;
s:string ;
buf:string;
e,i,j,w,ns,ds,d,bufr:integer;
begin
ns:=1;
buf:=".";
ft:=true;
g:=true;
for e:=1 to form1.Memo1.Lines.Count do
begin
s:=Form1.Memo1.Lines[e-1];
d:=length(s);
s:=s+".";
for i:=1 to d+1 do
for j:=1 to 21 do
if s[i]=z[j] then
begin
ds:=i-ns;
ns:=i+1;
if ds<>0 then
if ft=true then
begin
w:=i-1;
b:=s[w];
ft:=false;
Form1.ListBox1.Items.Add("Первое слово в тексте заканчивается на букву: ("+b+")");
end;
if ft=false then
begin
bufr:=ns-(ds+1);
buf:=copy(s,bufr,ds);
w:=length(buf);
if buf[w]=b then
if g=true then
begin
Form1.ListBox1.Items.Add("В данном тексте на ("+b+") заканчиваются слова:");
g:=false;
Form1.ListBox1.Items.Add(buf);
end
else
Form1.ListBox1.Items.Add(buf);
end;
end;
end;
end;
← →
talim © (2011-06-19 11:55) [1]Код изначально был написан для Borland Packal (Все действия производились с одной строкой). После импортирования в Delphi 7 потребовалось добавить цикл на чтение строк по-порядку:
for e:=1 to form1.Memo1.Lines.Count do
. Ошибка возникает вот здесьif buf[w]=b then
. Кто-нить знает в чём может быть проблема? Или в каком направлении копать?
← →
Anatoly Podgoretsky © (2011-06-19 13:08) [2]А почему не b1
← →
Andy BitOff © (2011-06-19 14:27) [3]Пипец!!! Расстрелять за такой код.
Навеяно собственными пиереживаниями. Сейчас приходится сопровождать проект написанный в током же стиле. Автор его наверняка обикался. Блин, да чтоб он сдох.
зы. Сорри, наболело.
← →
Loginov Dmitry © (2011-06-19 14:49) [4]
>
> Или в каком направлении копать?
Строки в паскале содержали в нулевом символе длину. Обращение к нулевому байту было нормальной операцией. В Delphi строки string стали "длинными" и теперь обращение к нулевому символу не допускается. Попробуй объявить переменные не string, а ShortString, AV выдаваться перестанет. Но это совершенно не значит, что программа начнет правильно работать. Для этого как минимум нужен программист.
Отладчик тебе в помощь!
> Расстрелять за такой код.
Типичный код первокурсника, которому "седня сдавать нада", а задание препод "выдал только вчера".
← →
Loginov Dmitry © (2011-06-19 14:53) [5]
> Сейчас приходится сопровождать проект написанный в током
> же стиле.
Да уж, участь незавидная :(
Имхо, лучше всего весь этот говнокод переписать с нуля, иначе разбираться и ловить глюки придется до пенсии. Самое сложное при этом - понять, что он вообще делает.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2011.10.09;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.003 c