Посмотрите пожауйста, где у меня ошибка.
Вообще программка должна из набранной гадости найти буквы и отсортировать их.
begin
S:=Form1.LabeledEdit1.Text;
For i:=1 To Length(S) Do
If (Ord(s)>96) And (Ord(s)<122) Then
Begin
Inc(c);
a[c]:=s;
End;
For i:=1 To Length(a)-1 Do // Начинаем сортировку
For j:=1 To Length(a) Do
If ord(a)>Ord(a[i+1]) Then // Сравниваем текуший и последующий символы
Begin
Buf:=a[i+1];
a[i+1]:=a;
a:=Buf;
End;
For i:=1 To Length(a) Do
Form1.Label1.Caption:=Form1.Label1.Caption+a+' ';
end;
_________________________________________
Кулер тоже вертолет, только маленький.
_________________________________________
Приходит программист домой с работы весь в крови, глаза круглые...
Жена спрашивает:
- Дорогой, что случилось?
Программист, все еще в шоке, отвечает:
- В кулер засосало...
Где Ошибка? Помогите Пожалуйста в Delphi!!!
Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду
char - вполне себе перечисляемый тип, можешь писать If (s>'a') And (s<z). Нагляднее получается.
А, как я понял, массив чаров? Он не инициализируется (как и все остальные переменные). Так что возьми просто строку s1, и пиши вместо Begin
Inc(c);
a[c]:=s;
End;
Просто s1=s1+s. Если так хочется использовать массив, да еще и динамический - есть процедура setlength.
В конце тогда form1.label.caption:=s1;
А, как я понял, массив чаров? Он не инициализируется (как и все остальные переменные). Так что возьми просто строку s1, и пиши вместо Begin
Inc(c);
a[c]:=s;
End;
Просто s1=s1+s. Если так хочется использовать массив, да еще и динамический - есть процедура setlength.
В конце тогда form1.label.caption:=s1;
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
- Oleg_Rus
- Сообщения: 335
- Зарегистрирован: 16 окт 2006, 09:56
- Откуда: г.Улан-Удэ, респ.Бурятия, Российская Федерация
- Контактная информация:
спасибо, конешно за оперативный ответ но мой комп матюгается на строку
a[c]:=s;
говорит такое:
Project Project1.exe raised exception class EAccessViolation with message 'Access violation at address 004540B7 in Module'Project1.exe'. Write of address 0042C0E0. Precess stopped. Use Step or Run to contunue
и просит нажать:
OK Help
a[c]:=s;
говорит такое:
Project Project1.exe raised exception class EAccessViolation with message 'Access violation at address 004540B7 in Module'Project1.exe'. Write of address 0042C0E0. Precess stopped. Use Step or Run to contunue
и просит нажать:
OK Help
" писал(а):спасибо, конешно за оперативный ответ но мой комп матюгается на строку
a[c]:=s;
Конечно, ведь А - это стринг, и у него есть длина, уж если надо добавить что-то в строку, то :
Код: Выделить всё
a := a + s[i];