Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   No sé que pasa con el punto (https://www.clubdelphi.com/foros/showthread.php?t=11083)

karlita_cb 04-06-2004 20:59:51

No sé que pasa con el punto
 
Hola, tengo en mi programa algo como esto:

s_1 :=copy(cad,1,(pos('.',cad))-1);

y me sale un error de
[Error] Unit1.pas(624): Missing operator or semicolon

pero si este renglón de código lo quito, el programa corre bien. Le he cambiado de varias maneras y he visto que el problema es el punto, porque antes si declaro algo como esto P:='.'; entonces en este renglón tengo el error....

Alguien me podría ayudar???

roman 04-06-2004 21:04:49

¿Qué tiene el renglón anterior? ¿No será en ése donde falta el ';'?

// Saludos

karlita_cb 04-06-2004 23:43:06

No, el renglón anterior tiene esto:

cad:=form1.ComboBox1.Text;

Te digo que el error es el punto que tomo como caracter o cualquier otro...
por ejemplo si pongo p:='a'; igualmente el error lo tiene esta linea. p está declarada como string, entonces no le veo el problema

roman 04-06-2004 23:49:28

¿Es muy largo el procedimiento que contiene la línea? ¿No podrías copiar y pegar el código aquí? No lo escribas, copia y pega para verlo exactamente como es.

Eso sí, ponlo entre etiquetas [delphi] por favor.

// Saludos

__cadetill 04-06-2004 23:50:52

por que no pones todo el trozo de código? Ese error es de ; y seguramente se nos escapa algo

karlita_cb 05-06-2004 00:03:33

Aquí va el código
 
Lo de rojo es mi problemilla...aún si separo el copy del delete el error persiste... Gracias

Código Delphi [-]
 
procedure TForm1.ComboBox1Change(Sender: TObject);
Var
  s_1, s_2, s_3, s_4, cad, sub, Mascara, pu, cad : string;
 i, incremento : integer;

  potencia : array[0..7] of integer;
  mask     : array[0..7] of integer;
begin
 potencia[1]:=   2;
 potencia[2]:=   4;
 potencia[3]:=   8;
 potencia[4]:=  16;
 potencia[5]:=  32;
 potencia[6]:=  64;
 potencia[7]:= 128;

 mask[7]:= 254;
 mask[6]:= 252;
 mask[5]:= 248;
 mask[4]:= 240;
 mask[3]:= 224;
 mask[2]:= 192;
 mask[1]:= 128;
 sub := form1.Combobox1.text;

// de la subred seleccionada busca mascara de sudred
 Red.open;
 //combosubred.Clear;
 while not Red.Eof do
   begin
   if  sub = (Red.Fieldbyname('Subred').asstring) then
     begin
       Mascara := (Red.Fieldbyname('Mascara').asstring);
       Break;
     end;
    Red.Next;
   end;
   Red.close;
 // Segun la mascara es el tamaño de la red
 //compara la mascara y determina el incremento
 i := 1;
 while i <= 6 do
   begin
     if  mask[i] =   strtoint(Mascara) then
     break;
     inc(i);
   end;
   incremento := potencia[i + 1];

 form1.ComboBox2.Clear;
 form1.ComboBox3.clear;
//antes de agregar determinar la posicion
  cad:=form1.ComboBox1.Text;

 
   s_1 :=copy(cad,1,(pos('.',cad))-1); delete(cad,1,(pos('.',cad)));
   s_2 :=copy(cad,1,(pos('.',cad))-1); delete(cad,1,(pos('.',cad)));
   s_3 :=copy(cad,1,(pos('.',cad))-1); delete(cad,1,(pos('.',cad)));
   s_4 := cad;
  // e :=  strtoint(_subred_4) ;
  if  strtoint(_subred_4)  = 0 then
    begin
      for  i := 2  to (254) do
        begin
          ComboBox2.Items.Add(_subred_1 + '.' + _subred_2 + '.' + _subred_3  + '.' +inttostr(i));
          ComboBox3.Items.Add(_subred_1 + '.' + _subred_2 + '.' + _subred_3  + '.' +inttostr(i));
        end;
     exit
   end
   else
  begin
   for  i := strtoint(_subred_4)+ 1 to (strtoint(_subred_4) + (incremento - 1)) do
       begin
      ComboBox2.Items.Add(_subred_1 + '.' + _subred_2 + '.' + _subred_3  + '.' + inttostr(i));
      ComboBox3.Items.Add(_subred_1 + '.' + _subred_2 + '.' + _subred_3  + '.' + inttostr(i));
     end;
      exit
   end;

end.

roman 05-06-2004 00:11:08

Tengo dudas de que éste sea el código exacto. En la declaración

Código Delphi [-]
Var
  s_1, s_2, s_3, s_4, cad, sub, Mascara, pu, cad : string;

aparece dos veces el identificador cad y el compilador debió detenerse ahí antes de las líneas en rojo.

karlita_cb 05-06-2004 00:19:18

yA LO MODIFIQUÉ
 
s_1, s_2, s_3, s_4, cad, sub, Mascara, pu, cad1 : string;
i, incremento : integer;
Y EL ERROR ESTÁ EXACTAMENTE EN EL MISMO LUGAR

roman 05-06-2004 00:25:36

Ahí te va una hipótesis descabellada:

Creo que en algún lugar tienes declarada una variable de nombre pos.

Acabo de hacer la prueba de añadir una variable con dicho nombre y, claro, el compilador protesta con: "Missing operator or semicolon" porque pos ya no corresponde a la función sino a la variable.

Revisa y me cuentas.

karlita_cb 05-06-2004 00:32:58

muchas gracias
 
Efectivamente tenía un objeto Ttable con ese nombre, ya lo modifiqué y todo salió a la perfección... muchas muchas gracias

roman 05-06-2004 00:37:46

Oye karlita, no seas malita y hazme un favor: la próxima vez que pongas código utiliza la etiqueta [delphi]. Fíjate que edité tu mensaje para que se pudiera leer mejor el código. Si quieres ver cómo se usa sólo dale al botón "Editar" de dicho mensaje.

// Saludos


La franja horaria es GMT +2. Ahora son las 08:16:13.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi