forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Основной форум (http://forum.boolean.name/forumdisplay.php?f=49)
-   -   Как создать статичный массив? (http://forum.boolean.name/showthread.php?t=8771)

Tronix 26.07.2009 16:11

Как создать статичный массив?
 
Всем привет.
Сталкнулся с проблеммой: как содать статичный массив?
В паскале это было приблизительно так:
Код:

Const
    Mas : Array [1..4] of Integer = (1,2,3,4);

В Мидлетпаскале это не возможно? Как тогда быть с кодом:
Код:

            If i = 102 then i := 2 else
        If i = 116 then i := 16 else
        If i = 125 then i := 25 else
        If i = 150 then i := 50 else
        If i = 152 then i := 52 else
        If i = 154 then i := 54 else
        If i = 159 then i := 59 else
        If i = 161 then i := 61 else
        If i = 163 then i := 63 else
        If i = 164 then i := 64 else
        If i = 173 then i := 73 else
        If i = 177 then i := 77 else
        If i = 197 then i := 77 else
        If i = 199 then i := 77 else
        If i = 178 then i := 78;

Он меня просто убивает :( Неужели делать рессурс и из него читать в массивы? Помогите соптимизить. Я новичек, делаю первую прогу на мидлет паскале. С обычным паскалем опыт есть. Спасибо.

abcdef 26.07.2009 19:40

Ответ: Как создать статичный массив?
 
из ресурса самый оптимальный и мало занимающий. альтернатива - вместо ресурса использовать строку, а парсингом вытаскивать числа в массив

beisik 26.07.2009 20:15

Ответ: Как создать статичный массив?
 
А как второй фрагмент кода относится к массиву?

Tronix 26.07.2009 22:15

Ответ: Как создать статичный массив?
 
Цитата:

Сообщение от beisik (Сообщение 111927)
А как второй фрагмент кода относится к массиву?

Ну было бы проше создать два массива, а потом в цикле искать в них соответствия, типа того:
Код:

Const

M1 : Array [1..4] of Integer = (102,116,125,150);
M2 : Array [1..4] of Integer = (2,16,25,50);

Function InList(a: integer) : integer;
var
  i : Integer;
Begin
    InList := a;
    For i := 1 to 4 do
          If M1[i] = a then InList := M2[i];
End;


Tronix 26.07.2009 22:20

Ответ: Как создать статичный массив?
 
Цитата:

Сообщение от abcdef (Сообщение 111924)
из ресурса самый оптимальный и мало занимающий. альтернатива - вместо ресурса использовать строку, а парсингом вытаскивать числа в массив

Да, про строку тоже думал.
Ладно, все равно спасибо. Решил в итоге забить и оставить if'ы. Из-за 15 подмен не хочеться возиться. В дальнейшем конешно придеться использовать либо ресурс, либо парсинг строки-константы, если будет больше данных.

Все-таки конечно очень непривычно после обычного паскаля... Как-то кривоватенько все ))
Но вроде написал то, что хотел и даже как-то вроде работает ))) Кому интересно - http://tronix286.pochta.ru/regcodes/index.htm

beisik 27.07.2009 01:53

Ответ: Как создать статичный массив?
 
Совсем не понимаю проблемы. Ручками забить данные в массив не судьба?

m1[1] := 102;

Или не в этом суть вопроса?

Tronix 27.07.2009 10:57

Ответ: Как создать статичный массив?
 
Цитата:

Сообщение от beisik (Сообщение 111961)
Совсем не понимаю проблемы. Ручками забить данные в массив не судьба?

m1[1] := 102;

Или не в этом суть вопроса?

Ну а если данных > 100 ? Мне кажется это очень кривой код с точки зрения программинга.

Вообщем спасибо еще раз всем, переделал все под рессурс. Из него гружу данные в массивы.


Часовой пояс GMT +4, время: 02:19.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot