Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.11.20;
Скачать: [xml.tar.bz2];

Вниз

Помогите сократить код...   Найти похожие ветки 

 
r00t   (2003-11-08 10:39) [0]

Имеется такой код:

var
in1,in2,in3,...,in16:integer;
begin
if Edit1.Text="a" then in1:=1;
if Edit1.Text="b" then in1:=2;
if Edit1.Text="c" then in1:=3;
...
if Edit1.Text="z" then in1:=26;
/////////////////////////////////////////////
if Edit2.Text="a" then in2:=1;
...
{----------и т.д.-----------------}
end;

Возможно ли как нибудь автоматизировать данную
процедуру или делать все тупым перебором?
Заранее спасибо.


 
Igorek   (2003-11-08 11:15) [1]

1) вместо in1,in2,in3,...,in16:integer; сделай массив
2) присваивай елементам массива код символов минус соотв. смещение


 
Anatoly Podgoretsky   (2003-11-08 13:42) [2]

if Edit1.Text[1] in ["a".."z"] then in1 := Ord(Edit1.Text[1])-64;


 
OlegGashev   (2003-11-08 13:45) [3]

if Edit1.Text[1] in ["a".."z"] then in1 := Ord(Edit1.Text[1])-ord("a")+1;


 
phan   (2003-11-09 22:48) [4]

in1:=Ord(Edit1.Text[1]);
if (in1>96)and(in1<123) then in1:=in1-96;


 
icWasya   (2003-11-10 09:56) [5]


var
int : array [1..16] of integer;
Edit : TEdit;
i : Integer;
.....

for i:=1 to 16 do begin
Edit:=FindComponent("Edit"+IntToStr(I));
if Edit.Text[1] in ["a".."z"] then in[i] := Ord(Edit.Text[1])-ord("a")+1;

end;



 
Zergling   (2003-11-10 10:55) [6]

r00t ©

На будующее. Внекоторых ситуациях вместо кучи IF удобней использовать CASE


 
Silver Alex   (2003-11-10 11:12) [7]

> Zergling

case работает с типом Integer, но не со String


 
Плохиш_   (2003-11-10 11:13) [8]

>Silver Alex © (10.11.03 11:12) [7]

но также работает с типом char


 
Zergling   (2003-11-10 11:15) [9]

Silver Alex © (10.11.03 11:12) [7]

Знаем. Но судя по коду ему нужен только один символ в работе, а с Char Case работает без проблем.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2003.11.20;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.011 c
14-66112
AndreyA
2003-10-29 16:34
2003.11.20
Местные


1-65914
Prof
2003-11-08 12:12
2003.11.20
Поиск файла


3-65740
saperxl
2003-10-31 20:32
2003.11.20
Пароль к SYSDBA в InterBase


1-65864
Chlavik
2003-11-07 19:25
2003.11.20
TStatusBar и OwnerDraw какойто страшный глюк :)


1-65900
ak75
2003-11-08 18:00
2003.11.20
TThread. Что не так? И как с этим бороться?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский