Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-06-2017
angelratza angelratza is offline
Registrado
NULL
 
Registrado: jun 2017
Posts: 8
Poder: 0
angelratza Va por buen camino
Exclamation No se reconoce el signo de %, Pascal

Hola a todos, verán soy nuevo en esto de programar con delphi pascal, por lo que me acerco a ustedes con un problema.

Tengo un programa que tiene hechas funciones para el conteo y obtención de los valores de una cadena, pero el problema es que no me reconoce el símbolo de % como separador entre las partes de dicha cadena.
Les dejo el código para ver si alguien me puede ayudar a identificar el error que tengo y lograr que lo reconozca como un carácter para separar los valores.

Funciones utilizadas:
Código Delphi [-]
   function EsStrunNumero(NumStr : string) : bool;
   begin
    result := true;
    try
      StrToInt(NumStr);
    except
      result := false;
    end;
   end;

   function GetToken(Cadena:string; Separador:char; Token:integer):string; overload
   {
   Cadena     es la string en la que buscar el token
   Separador  es la string que separa cada token
   Token      es el número de token que buscamos

   Cadena     is the string in that look for the token
   Separador  is the token separator
   Token      is the desired token number
   }
   var
     Posicion:integer;
   begin
      while Token > 1 do begin
        Delete(Cadena,1,Pos(Separador,Cadena));
        Dec(Token);
      end;
      Posicion:=Pos(Separador,Cadena);
      if Posicion=0
      then result:=cadena
      else Result:=Copy(Cadena,1,Posicion-Length(Separador));
   end;

   function GetTokenCount(Cadena:string; Separador:char):integer; overload;
   var
      Posicion:integer;
   begin
     Posicion:=Pos(Separador,Cadena);
     Result:=1;

     if Cadena <> '' then begin
       if Posicion <> 0 then begin
         while Posicion <> 0 do
         begin
           Delete(Cadena,1,Posicion);
           Posicion:=Pos(Separador,Cadena);
           Inc (Result);
         end;
       end;
     end else Result:=0;
   end;
Parte del programa con el conflicto:
Código Delphi [-]
       IF GetTokenCount(texto,'%') = 2 then //cuando hay 2 tokens con signo de %
          begin
            if (EsStrunNumero(GetToken(texto,'%',1))) and (EsStrunNumero(GetToken(texto,'%',2)))then
            begin
              idesc:= StrToInt(GetToken(texto,'%',1));//Con esta funcion se obtiene el 1er. token que es el 
                                                      //porcentaje de descuento y la colocamos a iDesc
              scve:= GetToken(texto,'%',2);   //Con esta Funcion se obtiene el 2o. token que es la clave de 
                                              //producto y se deposita en scve

                  reng:=Fventa.SGVenta.RowCount; //Parte de una rejilla en donde se muestran los datos
                  importdesc:=StrToFloat(Fventa.SGVenta.Cells[6,reng-1]); // Obtenemos el valor del importe 
                                                              // sin descuento

                  if idesc <> 0 then
                  begin
                    Desc:=1-idesc/100; //a 1 se resta el porcentaje de descuento para q Desc se multiplique por la cantidad
                    import:=importdesc*Desc;
                    Fventa.SGVenta.Cells[5,reng-1]:= IntToStr(idesc); // Descto
                  end;
              end; 
           end;
Agradezco de antemano el apoyo que dan en este sitio y quedo atento de sus comentarios para resolverlo.
Saludos.

Última edición por ecfisa fecha: 09-06-2017 a las 20:19:56. Razón: Agregar etiquetas [DELPHI] al código
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
¿y tú, de qué signo astrológico eres? Casimiro Notevi La Taberna 11 11-04-2009 02:03:54
Comparativa entre Free Pascal 2.2.0 y Turbo Pascal 7.0 esocrates Varios 2 14-07-2008 14:56:24
manual de excepciones de object pascal para free pascal??? Garion OOP 3 27-05-2005 00:42:29
Cambiar Signo en Interbase Pablo_L Firebird e Interbase 2 15-09-2004 14:16:10
Numeros positivos con signo Romanosky Varios 1 11-05-2004 12:20:10


La franja horaria es GMT +2. Ahora son las 19:06:23.


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
Copyright 1996-2007 Club Delphi