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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.02.2015, 03:50   #1
kostya67
Пользователь
 
Регистрация: 19.06.2013
Сообщений: 49
По умолчанию Access violation в цикле

В чем может быть проблема, выскакивает access violation на проверке if
access violation at address 00455567 in module

Когда проверяю просто вот так строку без цикла то работает

Код:
 for i:=0 to test do
    begin
     tester:=form1.Memo1.Lines[i];
     If tester[Length(tester)] <> ' ' then
     begin
       form1.Memo1.Lines[i]:=form1.Memo1.Lines[i]+' ';
     end;
    end;

Последний раз редактировалось Stilet; 06.02.2015 в 07:54.
kostya67 вне форума Ответить с цитированием
Старый 06.02.2015, 04:10   #2
ДралсяСошибками
Форумчанин
 
Аватар для ДралсяСошибками
 
Регистрация: 31.05.2011
Сообщений: 301
По умолчанию

Цитата:
for i:=0 to Memo1.Lines.Count-1 do
адский код
ДралсяСошибками вне форума Ответить с цитированием
Старый 06.02.2015, 04:16   #3
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

1) Не очень понятно что вы делайте
2) Я думаю что вы обращайтесь переменная который еще не объявлен
Код:
 Var i: integer;
      test: string;
begin
..........................
..........................
.......... здесь ваши код. Но, вы лучше скажите что вы хотите делать ?
end
xxbesoxx вне форума Ответить с цитированием
Старый 06.02.2015, 04:42   #4
kostya67
Пользователь
 
Регистрация: 19.06.2013
Сообщений: 49
По умолчанию

Цитата:
Сообщение от xxbesoxx Посмотреть сообщение
1) Не очень понятно что вы делайте
2) Я думаю что вы обращайтесь переменная который еще не объявлен
Код:
 Var i: integer;
      test: string;
begin
..........................
..........................
.......... здесь ваши код. Но, вы лучше скажите что вы хотите делать ?
end
Есть мемо с таким текстом

Текст
пустая строка
текст
текст
пустая строка
текст

Я выдрал диапозон где текст в две строчки

Теперь пытаюсь проверить есть ли пробел в конце и добавить если нет
kostya67 вне форума Ответить с цитированием
Старый 06.02.2015, 05:42   #5
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Проверите так должен работать ?
Код:
procedure TForm1.Button1Click(Sender: TObject);
 Var i: integer;
    tester: string;
begin
 for i:=0  to Memo1.Lines.Count-1 do
    begin
     tester:= Memo1.Lines.Text;
     If tester[Length(tester)] <> '' then
     begin
       Memo1.Lines[i]:=form1.Memo1.Lines[i] + '  ';
       Memo1.SetFocus;
     end;
    end;

end;

end.
Вложения
Тип файла: rar Tester.part01.rar (500.0 Кб, 8 просмотров)
Тип файла: rar Tester.part02.rar (500.0 Кб, 7 просмотров)
Тип файла: rar Tester.part03.rar (500.0 Кб, 7 просмотров)
Тип файла: rar Tester.part04.rar (500.0 Кб, 6 просмотров)
Тип файла: rar Tester.part05.rar (257.3 Кб, 7 просмотров)
xxbesoxx вне форума Ответить с цитированием
Старый 06.02.2015, 11:50   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Код:
If tester[Length(tester)] <> ' ' then
не очень желательно лезть в пустую строчку внутрь.

Цитата:
Теперь пытаюсь проверить есть ли пробел в конце и добавить если нет
kostya67, а в пустые строчки тоже нужно пробел в конец добавить?


Ну, если я правильно понял задачу,
то я бы предложил такой вариант решения:
Код:
for i:=0 to form1.Memo1.Lines-1 do
     if Trim(form1.Memo1.Lines[i])<>'' then begin {исключили пустые строки}
         tester:=form1.Memo1.Lines[i];
         If tester[Length(tester)] <> ' ' then
            form1.Memo1.Lines[i]:= form1.Memo1.Lines[i]+' ';
     end;
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Access violation dimavit Общие вопросы Delphi 3 29.07.2012 19:16
access violation ho_N Компьютерное железо 2 30.11.2011 08:36
как в цикле создавать массив с одним и тем же именем!?ошибка в ходе выполнения -access violation at addr sleevman Помощь студентам 2 28.10.2009 19:06
Access Violation SunKnight Общие вопросы Delphi 2 05.06.2008 16:46
Access Violation Carbon Общие вопросы Delphi 12 18.09.2007 19:55