Post Reply 
Problems with export CMD
02-27-2017, 12:47 AM (This post was last modified: 02-27-2017 01:25 AM by compsystems.)
Post: #1
Problems with export CMD
I discovered a problem with EXPORT,

The following functions require a global variable to retrieve the last assigned value after of a second or n execution.

If you uncomment the export, the simulator is restarted, I think the compiler should check that it only defines varible with EXPORT CMD, just one time, and generate an error message


PHP Code:
// version 0.2 feb 26/2017

//Global variables
//x:=0;
//y:=0;

//Global and visible variables
export x:=0;
export y:=0;
export z:=0;
export inputv0()
BEGIN
  
//x:=5;
  
print();
  print(
"input cmd with a variable"); wait;
  
input);
  print(
"foo1"); wait;
  
//foo1();
  
input);
  print(
"foo2"); wait;
  
//foo2();
  
input);
  print(
"foo3"); wait;
  
//foo3();
  
return "Done";
END;

//export x:=0;
export inputv1()
BEGIN
  
// I: forma mas simple, requiere un solo argumento el nombre de la variable
  // ARGUMENTO#1 variable: "x"
  // ARGUMENTO#2 etiqueta: se agrega automaticamente a la caja de dialogo el mismo nombre de la variable mas ":" , en este caso "X:"
  // ARGUMENTO#3 titulo de la caja de dialogo: por defecto coloca "Input"
  // ARGUMENTO#4 ayuda: agreaga la cadena "Enter value for" + nombre de la variable,  "Enter value for X" si la calcualdora esta en inglés
  // ARGUMENTO#5 valores de reinicio o por defecto
  // ARGUMENTO#6 valores iniciales
  
x:=1// valor inicial siempre que se llame a la orden inputv1()
  
input);
  
// [enter] ó [ok] ejecuta los campos de la caja de dialogo
  // [esc] ó [ok]
  
return "Done";
END;

//export x:=0;
export inputv1a()
BEGIN
  
// para recuperar el ultimo valor asignado, se debe crear X como variable global export x:=0;
  
input);
  return 
"Done";
END;

//export x:=0;
export inputv1b()
BEGIN
  
// agregando titulo personalizado, argumento #2
  
inputx"titulo» Modificando x" );
  return 
"Done";
END;

//export x:=0;
export inputv1c()
BEGIN
  local x
:=3;
  
// agregando titulo y etiqueta personalizada, argumentos #2-3
  
inputx"titulo» Modificando x","etiqueta» x:" );
  
// note que la ayuda automaticamente elimina los dos puntos si los hay al final de la etiqueta mostrando solo "Enter value for etiqueta X" y no "Enter value for etiqueta X:"
  
return "Done";
END;

//export x:=0;
export inputv1d()
BEGIN
  
// agregando titulo, etiqueta y ayuda personalizada, argumentos #2-4
  
inputx"titulo» Modificando x","etiqueta» x:","Ayuda» Ingrese valor para la etiqueta x" );
  return 
"Done";
END;

//export x:=0;
export inputv1e()
BEGIN
  
// agregando titulo, etiqueta, ayuda, y valor de reinicio personalizado, argumentos #2-5
  
local valorDeReinicio:=5.1;
  
input(
  
x,
  
"titulo» Modificando x",
  
"etiqueta» x:",
  
"Ayuda» Ingrese valor para la etiqueta x",
  
valorDeReinicio
  
);
  
// el valor de reincicio se coloca con la secuencia [shift]+[esc] ó solo [backspace]
  
return "Done";
END;

//export x:=0;
export inputv1f()
BEGIN
  
// agregando titulo, etiqueta, ayuda, valor de reinicio e inicial personalizado, argumentos #2-5
  //x:=78; // ya no es necesario definir un valor inicial en esta forma
  
local valorDeReinicio:=5.1234;
  
local valorInicial:=5.2;
  
input(
  
x,
  
"titulo» Modificando x",
  
"etiqueta» x:",
  
"Ayuda» Ingrese valor para la etiqueta x",
  
valorDeReinicio,
  
valorInicial
  
);
  return 
"Done";
END;

//export x:=0;
export inputv1g()
BEGIN
  
// argumentos por defecto se agrega {} y para campo vacio ""
  
inputx"titulo» Modificando x",{},"" ); // {} para etiqueta
  
return "Done";
END;

// II: INPUT con varias variables

//export x:=0; export y:=0; export z:=0;
export inputv2()
BEGIN
  
// para un conjunto de variables se abarcan entre {}
  
input( {x,y,z}, "titulo» Modificando x, y, z","etiqueta» x:","Ayuda» Ingrese valor para la etiqueta x" );
  
// note que las cadenas de texto para etiqueta y ayuda solo afectan a la primera variable
  
return "Done";
END;

//export x:=0; export y:=0; export z:=0;
export inputv2a()
BEGIN
  
// para un conjunto de etiquetas y ayudas se abarcan entre {}
  
input( {xyz}, "titulo» Modificando x, y, z",
  {
"etiqueta» x:","etiqueta» z:","etiqueta» z:"},
  {
"Ayuda» Ingrese valor para la etiqueta x""Ayuda» Ingrese valor para la etiqueta y""Ayuda» Ingrese valor para la etiqueta z" }
  );
  return 
"Done";  
END;

//export x:=0; export y:=0; export z:=0;
export a:=0;
export b:=0;
export c:=0;
export d:=0;
export ee:=0;
export inputv2b()
BEGIN
  
// Si hay mas de 7 variables LOS CAMPOS SE MUESTRAN EN N PANTALLAS
  
input(
  {
xyzabcdee},
  
"titulo» modificando n variables",
  {
"etiqueta» x:","etiqueta» y:","etiqueta» z:"},
  {
"Ayuda» Ingrese valor para la etiqueta x""Ayuda» Ingrese valor para la etiqueta y""Ayuda» Ingrese valor para la etiqueta z" }
  );
  
// puede completar las cadenas de texto para las etiquetas y ayuda para A,B,C,D,EE
  // con la tecla virtual [page #/#] se avanza ó REGRESA entre pantallas
  
return "Done";
END;


export inputv2c()
BEGIN
  
// para un conjunto de titulos se abarcan entre {}
  
input(
  {
xyzabcdee},
  {
"Titulo» modificando variables x, y, ... d",  "titulo» modificando variable ee"},
  {
"etiqueta» x:","etiqueta» y:","etiqueta» z:"},
  {
"Ayuda» Ingrese valor para la etiqueta x""Ayuda» Ingrese valor para la etiqueta y""Ayuda» Ingrese valor para la etiqueta z" }
  );
  return 
"Done";
END;

// Variable con n elementos

export inputv3()
BEGIN
  local list1
:={9,8,7,6};
  
input( {list1[1],list1[2],list1[3],list1[4]},
  
"Tit » mod los elementos de una lista",
  {
"list?1?""list[2]""list[3]""list[4]"}
  );
  return 
"Done";
END;

export inputv3a()
BEGIN
  local array1
:=[[1,2],[3,4]];
  
input(
  {
  
array1[1,1],
  
array1[1,2],
  
array1[2,1],
  
array1[2,2]
  },
  
"Tit » mod los elementos de un arreglo123",
  {
"array1?1,1?""array1[1,2]""array1[2,1]""array1[2,1]"}
  );
END;

export inputv3b()
BEGIN
  local offsetField0
:=0//%
  
local offsetField10:=10//10%
  
  
local widthField10:=0//0%
  
local widthField20:=10//20%
  
  // page 1
  
local lineField0:=0;
  
local lineField1:=1;
  
local lineField2:=2;
  
local lineField3:=3;
  
local lineField4:=4;
  
local lineField5:=5;
  
local lineField6:=6;
  
  
// page 2
  
local lineField7:=7;
  
local lineField8:=8;
  
  
local array1:=[[1,2],[3,4]];
  
input(
  
  {
  
  {
array1[1,1], [0], {10,20,lineField0} },
  {
array1[1,2], [0], {10,20,lineField1} },
  {
array1[2,1], [0], {40,20,lineField0} },
  {
array1[2,2], [0], {40,20,lineField1} }
  },
  
"Tit » mod los elementos de un arreglo123",
  {
"?1,1?""[1,2]""[2,1]""[2,1]"}
  );
END;

export inputcheckv1a()
BEGIN
  local checkbox
:=0;
  
local checkbox_true:=true;
  
local checkbox_false:=0;
  
local group2_checkbox:=2;
  
local group3_checkbox:=3;
  
local group4_checkbox:=4;
  
input(
  {
  {
X,group2_checkbox},
  {
Y,checkbox},
  {
Z,checkbox},
  {
W,checkbox}
  }
  );
  
END;


export inputcheckv1()
BEGIN
  local checkbox
:=0;
  
local checkbox_true:=true;
  
local checkbox_false:=0;
  
  
input(
  {
  {
X,checkbox},
  {
z,checkbox}
  }
  
  );
  
// las teclas [±] ó [enter] ó [?] cambian el estado de la casilla
END
Find all posts by this user
Quote this message in a reply
Post Reply 


Messages In This Thread
Problems with export CMD - compsystems - 02-27-2017 12:47 AM
RE: Problems with export CMD - Carlos295pz - 02-27-2017, 01:02 AM
RE: Problems with export CMD - compsystems - 02-27-2017, 01:14 AM
RE: Problems with export CMD - Han - 02-27-2017, 03:11 AM



User(s) browsing this thread: 1 Guest(s)