Pascal/Turbo Pascal - FORMULARIO PASCAL

   
Vista:

FORMULARIO PASCAL

Publicado por david perez (9 intervenciones) el 05/10/2012 12:06:51
Hola. Necesitaría un poco de ayuda. Tengo que hacer un ejercicio en pascal, el problema consiste en hacer un formulario y tener un control de contraseñas (poner mínimo 5 caracteres y que contenga 1 número) y un control de email (mínimo 5 caracteres, la ' @ ' y el ' .com ').

Lo que más me interesa es saber como hacer el control de contraseñas y emails, porque de verdad que por mucho que lo intento no averiguo como hacerlo. GRACIAS
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

FORMULARIO PASCAL

Publicado por ramon (2072 intervenciones) el 05/10/2012 22:33:04
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
{Esto puede servirte o quieres mas complejo }
 
 program formular;
  uses
     crt;
  type
     formu = record
         contras : string[10];
         email   : string[40];
       end;
 
   var
     formula : formu;
     contra : string[10];
     emal : string[40];
     tecla : char;
 
  procedure entradaform(xp, yp : integer);
  var
     n : integer;
     sal : boolean;
  begin
     n := 1;
     gotoxy(xp,yp);
     sal := false;
   repeat
      tecla := readkey;
      if tecla in[#48..#57,#65..#90,#97..#122,#164,#165] then
      begin
      insert(tecla,contra,n);
      gotoxy(xp + n,yp);write('*');
      n := n + 1;
      if n > 10 then
      begin
         n := 10;
         gotoxy(xp + 6,yp + 2);write('Fin Pulse Una Tecla');
         readkey;
         sal := true;
      end;
    end;
    if tecla = #8 then
    begin
        n := n - 1;
        if n < 1 then
        n := 1;
        delete(contra,n,1);
        gotoxy(xp + n,yp);write(' ');
    end;
   until (tecla = #13) or (sal = true);
     for n := 1 to length(contra) do
     begin
         formula.contras[n] := chr(ord(contra[n]) + 65);
         formula.contras[0] := chr(n);
     end;
  end;
 
  procedure entremail(xm, ym : integer);
  var
       n : integer;
     sal : boolean;
  begin
     n := 1;
     gotoxy(xm,ym);
     sal := false;
   repeat
      tecla := readkey;
      if tecla in[#46,#48..#57,#64..#90,#97..#122,#164,#165] then
      begin
      insert(tecla,emal,n);
      gotoxy(xm, ym);write(emal);
      n := n + 1;
      if n > 40 then
      begin
         n := 40;
         gotoxy(xm + 6,ym + 2);write('Fin Pulse Una Tecla');
         readkey;
         sal := true;
      end;
    end;
    if tecla = #8 then
    begin
        n := n - 1;
        if n < 1 then
        n := 1;
        delete(emal,n,1);
        gotoxy(xm,ym);clreol;
        gotoxy(xm,ym);write(emal);
    end;
   until (tecla = #13) or (sal = true);
        formula.email := copy(emal,1,length(emal));
   end;
 
   function contrasever : string;
   var
     n : integer;
     tradu : string;
     begin
        writeln('contenido paswor = ',formula.contras);
        writeln;
        for n := 1 to length(formula.contras) do
        begin
        tradu[n] := chr(ord(formula.contras[n]) - 65);
        tradu[0] := chr(n);
        end;
        contrasever := copy(tradu,1,length(tradu));
     end;
 
  begin
     clrscr;
     gotoxy(3,2);write('Entre Contrase¤a : ');
     entradaform(21,2);
     gotoxy(3,2);clreol;
     gotoxy(3,2);write('Entre email : ');
     entremail(16,2);
     clrscr;
     writeln('   La contrase¤a es : ',contrasever);
     readln;
  end.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

FORMULARIO PASCAL

Publicado por david (9 intervenciones) el 06/10/2012 12:15:42
Hola. Muchisimas gracias por contestar tan rápido. La verdad es que el programa va perfecto, pero me gustaría hacerlo de una manera algo mas sencilla, solamente que ponga email y contraseña y me diga OK. También (si no es mucho pedir) me gustaría hacerlo sin los números por tecla, así de manera más sencilla. gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

FORMULARIO PASCAL

Publicado por ramon (2072 intervenciones) el 06/10/2012 13:09:24
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
{Como podrás ver esto es lo mínimo para dar una mediana seguridad pero con esto espero
 te sirva la contraseña no puede entrarse con readln puesto que sino se vería dicha contraseña
 y no tendría agracio o no.}
 
 program paswor;
 uses
   crt;
 var
    contra : string[10];
    pasworent : string[10];
    emal : string[40];
    n : integer;
    tecla : char;
 
  procedure entrada;
  begin
     clrscr;
     writeln('**** Entrada Contrase¤as Y Email ****');
     writeln;
     gotoxy(2,4);write('Entre Clave : ');
     n := 1;
   repeat
      tecla := readkey;
      if ord(tecla) <> 13 then
      begin
          contra[n] := tecla;
          contra[0] := chr(n);
          gotoxy(15 + n,4);write('*');
          n := n + 1;
      end;
       if ord(tecla) = 8 then
       begin
          n := n - 1;
          if n < 1 then
          n := 1;
          gotoxy(15 + n,4);write(' ');
       end;
   until (n > 10) or (ord(tecla) = 13);
     for n := 1 to length(contra) do
     begin
         pasworent[n] := chr(ord(contra[n]) + 65);
         pasworent[0] := chr(n);
     end;
     gotoxy(2,5);write('Entre Email : ');
     gotoxy(16,5);readln(emal);
  end;
 
  procedure validapaswor;
  var
     tradu : string[10];
  begin
     gotoxy(2,4);write('Validar Clave : ');
     n := 1;
   repeat
      tecla := readkey;
      if ord(tecla) <> 13 then
      begin
          contra[n] := tecla;
          contra[0] := chr(n);
          gotoxy(15 + n,4);write('*');
          n := n + 1;
      end;
       if ord(tecla) = 8 then
       begin
          n := n - 1;
          if n < 1 then
          n := 1;
          gotoxy(15 + n,4);write(' ');
       end;
   until (n > 10) or (ord(tecla) = 13);
     for n := 1 to length(contra) do
     begin
         tradu[n] := chr(ord(pasworent[n]) - 65);
         tradu[0] := chr(n);
     end;
     if contra = tradu then
     begin
     gotoxy(2,6);write('El Paswor Es Correcto');
     end
   else
      begin
      gotoxy(2,6);write('El Paswor Es Incorrecto');
      end;
  end;
 
  begin
     entrada;
     clrscr;
     validapaswor;
     readln;
  end.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar