www.boolean.name

www.boolean.name (http://forum.boolean.name/index.php)
-   MidletPascal (http://forum.boolean.name/forumdisplay.php?f=46)
-   -   помогите довести до ума программку (http://forum.boolean.name/showthread.php?t=17960)

мацак 03.03.2013 11:40

помогите довести до ума программку
 
сделал сырую викторину на мидлет паскаль. почему-то программка в эмуляторе работает, а в телефонах не запускается.
у меня 4 вопроса:
1. почему в телефоне не запускается
2. подскажите как сделать чтобы вопросы программка выдавала в случайном порядке и без повторов
3. как сделать чтобы программка сохраняла в хранилище записей последний вопрос после закрытия программы и при следующем запуске выдавала его (это нужно чтобы не отвечать при каждом запуске на первый вопрос)
4. посоветуйте оптимизировать (уменьшить, упростить) ее. я дилетант многого не знаю.

я в тхт файле сделал пока 5 строчек и файл должен заканчиваться на цифру и последняя строчка в тхт файле дб пустой. планирую сделать файл с 1000 строк.
Вот текст ресурсного data.txt файла:

okno|window
dver|door
stena|wall
kniga|book
voda|water
1


вот сама программка:

Код:
Код:

program pr;//
var data: resource;//наш ресурс
i,x,y,z,o,fName,fl,fm,fm2,r,q,v: integer;
A: array[0..4] of string;
B,C,E: array[0..30] of string;
t,f,n,d,otv,w,g1,g2,g3,j,l,m: string;
cmd,cmd2: Command;
begin
i:=0;
data:= OpenResource('/data.txt');//открытие ресурса
if (resourceAvailable(data)) then // Если файл существует
begin
repeat
t:=ReadLine(data);
x:=length(t);
if x>1 then
begin
A[i]:=t;
i:=i+1;
end;
repaint;
until x<2;
CloseResource(data);
end;
repeat
begin
y:=random(5);
n:=A[y];
z:=Pos(n,'|');
f:=Copy(n,0,z);
o:=length(n);
d:=Copy(n,z+1,o);
q:=length(d);
fl:=1;
for r:=0 to (q-1) do
begin
C[r]:='*';
end;
repeat
showForm;
cmd:=createCommand('enter',CM_OK,1) ;// Создаем
команду "ввод"
cmd2:=createCommand('exit',CM_STOP ,2);
addCommand(cmd);
addCommand(cmd2);
fName:= formAddTextField(f,'',15,TF_ANY);
fl:=0;
for r:=0 to (q-1) do
begin
B[r]:=Copy(d,fl,fl+1);
fl:=fl+1;
end;
v:=random(q);
C[v]:=B[v];
l:=c[0]+c[1]+c[2]+c[3]+c[4]+c[5]+c[6]+c[7]+c[8]+c[9]+c[10]+c[11]+c[12]+c[13]+c[14]+c[15]+c[16]+c[17]+c[18]+c[19]+c[20];
fm:=formaddstring(l);
while (getClickedCommand <> Cmd) do
delay(100);//Ждем нажатия на кнопку enter
otv:= formGetText(fName); // Помещаем в переменную otv значение, введенное в редактируемое
clearform;
until otv=d;
for r:=0 to (20) do
begin
C[r]:='';
end;
clearform;
end;
until otv='t';
Delay(5000);//задержка
end.


мацак 03.03.2013 17:16

Ответ: помогите довести до ума программку
 
на телефоне заработала прога!!!! через шнур закинул заработала, раньше чз карту памяти кидал и бт). так что 1 вопрос отпадает.

Zhamalbek 04.03.2013 06:39

Ответ: помогите довести до ума программку
 
у тебя дольжен быть массыв чтоб сохрянять все номератьций вопроса каторые былый заданый и через рандом перепровериять нада это вопрос задовалсия


Часовой пояс GMT +1, время: 11:09.

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