Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
15-1307623782
oxffff
2011-06-09 16:49
2011.10.09
YAR под windows


2-1308647088
Nikita_novice
2011-06-21 13:04
2011.10.09
Нужен совет мастеров


15-1308342599
Юрий
2011-06-18 00:29
2011.10.09
С днем рождения ! 18 июня 2011 суббота


15-1308074644
Galera
2011-06-14 22:04
2011.10.09
Вирус HTML Crypted.Gen


15-1308383062
Юрий Зотов
2011-06-18 11:44
2011.10.09
Требуется квалифицированный Web-мастер ...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский