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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #101  
Antiguo 13-08-2007
Khronos Khronos is offline
Miembro
 
Registrado: abr 2007
Posts: 298
Poder: 18
Khronos Va por buen camino
Hola, esta weno este hilo. Me gustaria poner mi granito de arena aunque no sea nada en comparacion con el code de seoane
Con esta funcion puedes generar contraseñas con signos, letras, numeros..
No le veo utilidad ninguna pero a lo mejor les sirve:

Código Delphi [-]
function RandomWord(cifras: integer): string;
const
letras= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; //tambien valen numeros, signos ...
   var
   i, u: integer;
  begin
   Randomize;
   for u:=1 to cifras do begin
     i:=Random(Length(Letras)) + 1;
    result:=result + Letras[i];
    end;
  end;



Para llamar a la funciona es sencillo:

Código Delphi [-]
showmessage(RandomWord(8)); //y te devuelve ocho letras

Salu2
Responder Con Cita
  #102  
Antiguo 14-08-2007
Avatar de ArdiIIa
[ArdiIIa] ArdiIIa is offline
Miembro Premium
 
Registrado: nov 2003
Ubicación: Valencia city
Posts: 1.481
Poder: 22
ArdiIIa Va por buen camino
seoane, con relación al ejemplo44, te comenté (aunque ahora no consta) que había cambiado el parámetro strUrl a 33, por aquello del consuelo.

A día de hoy, he vuelto a restablecer dicho parámetro tal cual estaba...
__________________
Un poco de tu generosidad puede salvar la vida a un niño. ASÍ DE SENCILLO
Responder Con Cita
  #103  
Antiguo 14-08-2007
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Cita:
Empezado por ArdiIIa
seoane, con relación al ejemplo44, te comenté (aunque ahora no consta) que había cambiado el parámetro strUrl a 33, por aquello del consuelo.

A día de hoy, he vuelto a restablecer dicho parámetro tal cual estaba...
Como ya dije, no se consuela el que no quiere. Felicidades por tu nueva posición.

De todas formas, creo que roman lo tiene puesto a 1
Responder Con Cita
  #104  
Antiguo 14-08-2007
Avatar de Enan0
Enan0 Enan0 is offline
Miembro
 
Registrado: may 2004
Ubicación: Argentina
Posts: 565
Poder: 21
Enan0 Va por buen camino
Bueno Mi codigo Inutil.

por las estadisticas de visitas.. "el TA-TE-TI" que esta agregado en el hilo el Juego del X y O, ya que ha tenido la gran suma de!!! 0 visitas
jaja Bueno saludos (no lo agrego) ya que no quiero saturar el server con basura
Responder Con Cita
  #105  
Antiguo 14-08-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.293
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por Enan0 Ver Mensaje
...ya que ha tenido la gran suma de!!! 0 visitas
Pues debe estar el contador mal, como mínimo debería haber 1; Yo me lo descargué...
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #106  
Antiguo 14-08-2007
Avatar de Enan0
Enan0 Enan0 is offline
Miembro
 
Registrado: may 2004
Ubicación: Argentina
Posts: 565
Poder: 21
Enan0 Va por buen camino
Cita:
Empezado por Neftali Ver Mensaje
Pues debe estar el contador mal, como mínimo debería haber 1; Yo me lo descargué...
Ha bueno me quedo mas Tranquilo entonces. jeje
yo ya pensaba quera el maxime de los inservibles!! jejeje

saludos. (pretendo hacerle algunos cambios, ya se los comentare) porque requieren de PHP y por ahora voy a tener que estudiar
Responder Con Cita
  #107  
Antiguo 27-08-2007
Avatar de ArdiIIa
[ArdiIIa] ArdiIIa is offline
Miembro Premium
 
Registrado: nov 2003
Ubicación: Valencia city
Posts: 1.481
Poder: 22
ArdiIIa Va por buen camino
Bueno. Yo siguo en mis "doce mas uno" y a coladura de aquel hilo, pongo este código "de fin de semana".

No sirve para ver los usuarios que están conectados y resume el número suma el número de visitantes...........

En esta ocasión, prescindimos de las WinInet
El código es simplom y con prisas pero funciona.


[delphi]
unit UnitMain;

interface

uses
Windows, SysUtils, Classes, Forms,Dialogs, IdComponent, IdTCPConnection,
IdHTTP, IdCookieManager, IdBaseComponent, ExtCtrls, StdCtrls, Controls,
IdTCPClient;

type
TFormMain = class(TForm)
IdCookieManager1: TIdCookieManager;
IdHTTP: TIdHTTP;
Memo1: TMemo;
Panel1: TPanel;
Label1: TLabel;
Edit1: TEdit;
Label2: TLabel;
Edit2: TEdit;
Button1: TButton;

procedure IdHTTPStatus(ASender: TObject; const AStatus: TIdStatus; const AStatusText: String);
procedure Conectar;
procedure Extraer(Url : String);
procedure Button1Click(Sender: TObject);

private
{ Private declarations }
public
{ Public declarations }
end;

var
FormMain: TFormMain;
Perfil : Integer;

implementation

{$R *.dfm}

procedure TFormMain.IdHTTPStatus(ASender: TObject; const AStatus: TIdStatus; const AStatusText: String);
begin
//Memo1.Lines.Add(AStatusText)
end;


procedure TFormMain.Button1Click(Sender: TObject);
begin
Perfil := 0;
Memo1.Lines.Clear;
Conectar;
Extraer('http://www.clubdelphi.com/foros/online.php');
end;



procedure TFormMain.Conectar;
var
Campos: TStringlist;
Respuesta: TStringStream;
Begin
Campos:= TStringList.Create;
Respuesta:= TStringStream.Create('');
Campos.Values['vb_login_username']:= Trim(Edit1.Text);
Campos.Values['vb_login_password']:= Trim(Edit2.Text);
Campos.Values['do']:= 'login';
Idhttp.post('http://www.clubdelphi.com/foros/login.php',Campos);
Campos.Free;
Respuesta.Free;
end;


procedure TFormMain.Extraer(Url : String);
var
SiguientePag : String;
Contenido : TStrings;
I : Integer;
Desde , Longitud : Integer;
cTemp : String;
Begin

Contenido := TStringList.Create;
SiguientePag := '';

Contenido.Text := Idhttp.Get(Url);

//Procesar la salida
For I := 0 to Contenido.Count -1 Do
begin
//Siguiente página
If Pos('Siguiente Página',Contenido[i]) > 0 then
Begin
Desde := Pos('href', Contenido[i]);
Longitud := Pos('title', Contenido[i]) - Desde;
SiguientePag := Copy(Contenido[i],Desde , Longitud);
SiguientePag := StringReplace(SiguientePag,'&','&',[rfReplaceAll]);
End;

//Usuarios
If (Pos('<a href="member.php',Contenido[i]) > 0 ) and (Pos('Mi Perfil',Contenido[i]) = 0 ) then
Begin
Desde := 1 + Pos('>', Contenido[i]);
Longitud := Pos('</a>', Contenido[i]) - Desde;
//usuarios conectados -----> también aparecen los que han terminado sesión
if Trim(Contenido[I + 12 ]) <> '' then
Memo1.Lines.Add( Copy(Contenido[i],Desde , Longitud) + ' ---> ' + Trim(Contenido[I + 12 ]));
End;

If Trim (Contenido[i]) = 'Visitante' then
Begin
if Pos('Registrandose' ,Trim(Contenido[I + 12 ])) > 0 then
cTemp := 'Registrándose'
else
cTemp := Trim(Contenido[I + 12 ]);

if Pos('Viendo Perfil de Usuario' ,Trim(Contenido[I + 12 ])) > 0 then
inc(Perfil);
Memo1.Lines.Add( 'Visitante ---> ' + cTemp);
End;

End;

Contenido.Free;
Application.ProcessMessages;

if SiguientePag = '' then
Begin
Memo1.Lines.Add('***************************************************************************');
Memo1.Lines.Add('NUMERO DE VISITANTES VIENDO PERFIL DE USUARIOS: ' + IntToStr(Perfil));
Memo1.Lines.Add('***************************************************************************');
End
Else
Begin
SiguientePag := 'http://www.clubdelphi.com/foros/' + Copy(SiguientePag,7,Length(SiguientePag));
System.Delete(SiguientePag,Length(SiguientePag)-1,1);
Extraer(SiguientePag);
End;



End;


end.




[/delphi]

El Fom
[code]
object FormMain: TFormMain
Left = 309
Top = 149
Width = 532
Height = 409
Caption = 'Estadísticas de usuarios contectados -By AdiIIa-'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
object Memo1: TMemo
Left = 0
Top = 45
Width = 524
Height = 330
Align = alClient
ScrollBars = ssBoth
TabOrder = 0
end
object Panel1: TPanel
Left = 0
Top = 0
Width = 524
Height = 45
Align = alTop
TabOrder = 1
object Label1: TLabel
Left = 8
Top = 8
Width = 36
Height = 13
Caption = 'Usuario'
end
object Label2: TLabel
Left = 192
Top = 8
Width = 46
Height = 13
Caption = 'Password'
end
object Edit1: TEdit
Left = 64
Top = 8
Width = 121
Height = 21
TabOrder = 0
Text = 'TuNick'
end
object Edit2: TEdit
Left = 248
Top = 8
Width = 121
Height = 21
TabOrder = 1
Text = 'TuClave'
end
object Button1: TButton
Left = 392
Top = 8
Width = 75
Height = 25
Caption = 'Conectar'
TabOrder = 2
OnClick = Button1Click
end
end
object IdCookieManager1: TIdCookieManager
Left = 32
Top = 208
end
object IdHTTP: TIdHTTP
OnStatus = IdHTTPStatus
MaxLineAction = maException
ReadTimeout = 0
Host = 'www.clubdelphi.com'
AllowCookies = True
ProxyParams.BasicAuthentication = False
ProxyParams.ProxyPort = 0
Request.ContentLength = -1
Request.ContentRangeEnd = 0
Request.ContentRangeStart = 0
Request.ContentType = 'application/x-www-form-urlencoded'
Request.Accept = 'text/html, text/plain, */*'
Request.AcceptEncoding = 'gzip, deflate '
Request.AcceptLanguage = 'es,en;q=0.5 '
Request.BasicAuthentication = False
Request.UserAgent = 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) '
HTTPOptions = [hoForceEncodeParams]
CookieManager = IdCookieManager1
Left = 32
Top = 176
end
end
[/code]


Para los que no quieran perder tiempo en compilar, pongo el ejecutable comprimido como adjunto.


Edito y pongo las etiquetas noparse porque el mensaje aslía echo una porquería..
Archivos Adjuntos
Tipo de Archivo: zip Estadisticas_OnLine.zip (260,2 KB, 97 visitas)
__________________
Un poco de tu generosidad puede salvar la vida a un niño. ASÍ DE SENCILLO

Última edición por ArdiIIa fecha: 27-08-2007 a las 13:49:00.
Responder Con Cita
  #108  
Antiguo 27-08-2007
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Gracias Ardilla por animarte, espero que se anime alguno mas, que seguro que algún código inútil tienen por ahí
Responder Con Cita
  #109  
Antiguo 27-08-2007
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Con tu permiso Ardilla, creo que queda mejor con etiquetas php

Código PHP:
unit UnitMain;

interface

uses
  Windows
SysUtils,  ClassesForms,Dialogs,  IdComponentIdTCPConnection,
  
IdHTTPIdCookieManagerIdBaseComponentExtCtrlsStdCtrlsControls,
  
IdTCPClient;

type
  TFormMain 
= class(TForm)
    
IdCookieManager1TIdCookieManager;
    
IdHTTPTIdHTTP;
    
Memo1TMemo;
    
Panel1TPanel;
    
Label1TLabel;
    
Edit1TEdit;
    
Label2TLabel;
    
Edit2TEdit;
    
Button1TButton;

    
procedure IdHTTPStatus(ASenderTObject; const AStatusTIdStatus; const AStatusTextString);
    
procedure Conectar;
    
procedure Extraer(Url String);
    
procedure Button1Click(SenderTObject);

  private
    { Private 
declarations }
  public
    { Public 
declarations }
  
end;

var
  
FormMainTFormMain;
  
Perfil Integer;

implementation

{$R *.dfm}

procedure TFormMain.IdHTTPStatus(ASenderTObject;  const AStatusTIdStatus; const AStatusTextString);
begin
//Memo1.Lines.Add(AStatusText)
end;


procedure TFormMain.Button1Click(SenderTObject);
begin
Perfil 
:= 0;
Memo1.Lines.Clear;
Conectar;
Extraer('http://www.clubdelphi.com/foros/online.php');
end;



procedure TFormMain.Conectar;
var
  
CamposTStringlist;
  
RespuestaTStringStream;
Begin
  Campos
:= TStringList.Create;
  
Respuesta:= TStringStream.Create('');
  
Campos.Values['vb_login_username']:= Trim(Edit1.Text);
  
Campos.Values['vb_login_password']:= Trim(Edit2.Text);
  
Campos.Values['do']:= 'login';
  
Idhttp.post('http://www.clubdelphi.com/foros/login.php',Campos);
  
Campos.Free;
  
Respuesta.Free;
end;


procedure TFormMain.Extraer(Url String);
var
  
SiguientePag String;
  
Contenido TStrings;
  
Integer;
  
Desde Longitud Integer;
  
cTemp String;
Begin

    Contenido 
:= TStringList.Create;
    
SiguientePag := '';

    
Contenido.Text :=  Idhttp.Get(Url);

    
//Procesar la salida
    
For := 0 to Contenido.Count -Do
    
begin
    
//Siguiente página
      
If Pos('Siguiente Página',Contenido[i]) > 0 then
        Begin
          Desde 
:=  Pos('href'Contenido[i]);
          
Longitud  :=  Pos('title'Contenido[i]) - Desde;
          
SiguientePag := Copy(Contenido[i],Desde  Longitud);
          
SiguientePag := StringReplace(SiguientePag,'&amp;','&',[rfReplaceAll]);
        
End;

    
//Usuarios
      
If (Pos('<a href="member.php',Contenido[i]) > 0  ) and (Pos('Mi Perfil',Contenido[i]) = then
        Begin
          Desde 
:=  Pos('>'Contenido[i]);
          
Longitud  :=  Pos('</a>'Contenido[i]) - Desde;
    
//usuarios conectados   -----> también aparecen los que han terminado sesión
          
if Trim(Contenido[12 ]) <> '' then
            Memo1
.Lines.AddCopy(Contenido[i],Desde  Longitud) +   '  ---> ' Trim(Contenido[12 ]));
        
End;

      If  
Trim (Contenido[i]) = 'Visitante' then
        Begin
           
if Pos('Registrandose' ,Trim(Contenido[12 ])) > 0 then
           cTemp 
:= 'Registrándose'
       
else
           
cTemp := Trim(Contenido[12 ]);

      if 
Pos('Viendo Perfil de Usuario' ,Trim(Contenido[12 ])) > 0 then
           inc
(Perfil);
            
Memo1.Lines.Add'Visitante  ---> ' +   cTemp);
        
End;

End;

Contenido.Free;
Application.ProcessMessages;

if 
SiguientePag '' then
  Begin
      Memo1
.Lines.Add('***************************************************************************');
      
Memo1.Lines.Add('NUMERO DE VISITANTES VIENDO PERFIL DE USUARIOS: ' IntToStr(Perfil));
      
Memo1.Lines.Add('***************************************************************************');
  
End
Else
  
Begin
      SiguientePag 
:= 'http://www.clubdelphi.com/foros/' Copy(SiguientePag,7,Length(SiguientePag));
      
System.Delete(SiguientePag,Length(SiguientePag)-1,1);
      
Extraer(SiguientePag);
End;



End;


end
El Fom
Código:
object FormMain: TFormMain
  Left = 309
  Top = 149
  Width = 532
  Height = 409
  Caption = 'Estadísticas de usuarios contectados  -By AdiIIa-'
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'MS Sans Serif'
  Font.Style = []
  OldCreateOrder = False
  PixelsPerInch = 96
  TextHeight = 13
  object Memo1: TMemo
    Left = 0
    Top = 45
    Width = 524
    Height = 330
    Align = alClient
    ScrollBars = ssBoth
    TabOrder = 0
  end
  object Panel1: TPanel
    Left = 0
    Top = 0
    Width = 524
    Height = 45
    Align = alTop
    TabOrder = 1
    object Label1: TLabel
      Left = 8
      Top = 8
      Width = 36
      Height = 13
      Caption = 'Usuario'
    end
    object Label2: TLabel
      Left = 192
      Top = 8
      Width = 46
      Height = 13
      Caption = 'Password'
    end
    object Edit1: TEdit
      Left = 64
      Top = 8
      Width = 121
      Height = 21
      TabOrder = 0
      Text = 'TuNick'
    end
    object Edit2: TEdit
      Left = 248
      Top = 8
      Width = 121
      Height = 21
      TabOrder = 1
      Text = 'TuClave'
    end
    object Button1: TButton
      Left = 392
      Top = 8
      Width = 75
      Height = 25
      Caption = 'Conectar'
      TabOrder = 2
      OnClick = Button1Click
    end
  end
  object IdCookieManager1: TIdCookieManager
    Left = 32
    Top = 208
  end
  object IdHTTP: TIdHTTP
    OnStatus = IdHTTPStatus
    MaxLineAction = maException
    ReadTimeout = 0
    Host = 'www.clubdelphi.com'
    AllowCookies = True
    ProxyParams.BasicAuthentication = False
    ProxyParams.ProxyPort = 0
    Request.ContentLength = -1
    Request.ContentRangeEnd = 0
    Request.ContentRangeStart = 0
    Request.ContentType = 'application/x-www-form-urlencoded'
    Request.Accept = 'text/html, text/plain, */*'
    Request.AcceptEncoding = 'gzip, deflate '
    Request.AcceptLanguage = 'es,en;q=0.5 '
    Request.BasicAuthentication = False
    Request.UserAgent = 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) '
    HTTPOptions = [hoForceEncodeParams]
    CookieManager = IdCookieManager1
    Left = 32
    Top = 176
  end
end
Responder Con Cita
  #110  
Antiguo 27-08-2007
Avatar de ArdiIIa
[ArdiIIa] ArdiIIa is offline
Miembro Premium
 
Registrado: nov 2003
Ubicación: Valencia city
Posts: 1.481
Poder: 22
ArdiIIa Va por buen camino
Cita:
Empezado por seoane
Con tu permiso Ardilla, creo que queda mejor con etiquetas php
Solamente lo creés ??

Yo creo que si queda mejor...
__________________
Un poco de tu generosidad puede salvar la vida a un niño. ASÍ DE SENCILLO
Responder Con Cita
  #111  
Antiguo 27-08-2007
Avatar de BlackDaemon
BlackDaemon BlackDaemon is offline
Miembro
 
Registrado: dic 2006
Ubicación: Bolivia - Santa Cruz
Posts: 206
Poder: 18
BlackDaemon Va por buen camino
Aquí una función que convierte cifras numéricas a texto..
(lo saque de de una lista de correo)
Aunque no es exactamente inservible, por que hay componente que hacen lo mismo (Creo)

Código Delphi [-]
 function Letras( nNumero: Extended ): string;
const
  Y        = 'y '       ;
  F        = 'as '      ;
  M        = 'os '      ;
  MIL      = 'mil '     ;
  MILLON   = 'millón '  ;
  MILLONES = 'millones ';
  BILLON   = 'billón '  ;
  BILLONES = 'billones ';
var
  cEnLetra : string;
  cNumStr  : string;
  cUnidad  : string;
  cDecena  : string;
  cCentena : string;
  cDecStr  : string;
  cAux     : string;
  nGrupo   : Integer;
  aGrupos  : Array[1..5] of string;
  //**************************************************************************//
  function Decena( n1,n2: integer ): string;
  begin
    result := '';
    if ( n1 = 2 ) and ( n2 = 1 ) then
      if ( cUnidad = '0' ) then
        result := 'diez '
      else
        result := '';
    if n1 = 2 then
      case n2 of
         2: result := 'once ';
         3: result := 'doce ';
         4: result := 'trece ';
         5: result := 'catorce ';
         6: result := 'quince ';
         7: result := 'dieciseis ';
         8: result := 'diecisiete ';
         9: result := 'dieciocho ';
        10: result := 'diecinueve ';
      end;
    if ( n1 = 3 ) then
      if  ( cUnidad = '0' ) then
        result := 'veinte '
      else
        result := 'veinti';
    if ( n1 = 4 ) then
      if ( cUnidad <> '0' ) then
        result := 'treinta ' + Y
      else
        result := 'treinta ';
    if ( n1 = 5 ) then
      if ( cUnidad <> '0' ) then
        result := 'cuarenta ' + Y
      else
        result := 'cuarenta ';
    if ( n1 = 6 ) then
      if ( cUnidad <> '0' ) then
        result := 'cincuenta ' + Y
      else
        result := 'cincuenta ';
    if ( n1 = 7 ) then
      if ( cUnidad <> '0' ) then
        result := 'sesenta ' + Y
      else
        result := 'sesenta ';
    if ( n1 = 8 ) then
      if ( cUnidad <> '0' ) then
        result := 'setenta ' + Y
      else
        result := 'setenta ';
    if ( n1 = 9 ) then
      if ( cUnidad <> '0' ) then
        result := 'ochenta ' + Y
      else
        result := 'ochenta ';
    if ( n1 = 10 ) then
      if ( cUnidad <> '0' ) then
        result := 'noventa ' + Y
      else
        result := 'noventa ';
  end;
  //**************************************************************************//
  function Unidad    ( n    : integer ): string;
  var
    sNumero : Array [3..10] of string;
  begin
    result := '';
    sNumero[3] := 'dos '  ; sNumero[4] := 'tres '; sNumero[5] := 'cuatro ';
    sNumero[6] := 'cinco '; sNumero[7] := 'seis '; sNumero[8] := 'siete ';
    sNumero[9] := 'ocho ' ; sNumero[10] := 'nueve ';
    case n of
       1: if ( nNumero = 0 ) and ( nGrupo = 1 ) then
            result := 'cero';
       2: if ( cDecena = '1' ) then
            result := Decena( 2, StrToInt( cUnidad ) + 1 )
          else if ( aGrupos[nGrupo] = '001' ) and ( (nGrupo = 2 ) or ( nGrupo = 4 )) then
            result := ''
          else if ( nGrupo = 2 ) or ( nGrupo = 3 ) then
            result := 'un '
          else
            result := 'uno ';
       3..10: if ( cDecena = '1' ) then
            result := Decena( 2, StrToInt( cUnidad ) + 1 )
          else
            result := sNumero[n];
    end;
  end;
  //**************************************************************************//
  function Centena   ( n1   : integer ): string;
  begin
    result := '';
    case n1 of
       1: result := '';
       2: if ( cDecena + cUnidad ) = '00' then
            result := 'cien '
          else
            result := 'ciento ';
       3: result := 'doscientos ';
       4: result := 'trescientos ';
       5: result := 'cuatrocientos ';
       6: result := 'quinientos ';
       7: result := 'seiscientos ';
       8: result := 'setecientos ';
       9: result := 'ochocientos ';
      10: result := 'novecientos ';
    end;
  end;
  //**************************************************************************//
  function Conector( n1   : integer ): string;
  begin
    result := '';
    case n1 of
      1: result := '';
      2,4: if aGrupos[n1] > '000' then
          result := MIL;
      3: if ( aGrupos[3] > '000' ) or ( aGrupos[4] > '000' ) then
          if aGrupos[3] = '001' then
            result := MILLON
          else
            result := MILLONES;
      5: if ( aGrupos[5] > '000' ) then
          if aGrupos[5] = '001' then
            result := BILLON
          else
            result := BILLONES;
    end;
  end;
  //**************************************************************************//
begin
  cAux := Format( '%15.2f',[nNumero] );
  cNumStr := Trim(Format( '%15.15d',[Trunc(nNumero)] ));
  if nNumero - Trunc( nNumero ) = 0 then
    cDecStr := ''
  else
    cDecStr := 'con '+Copy( cAux,Length(cAux)-1,2)+'/100';
  for nGrupo := 1 to 5 do
    aGrupos[5-nGrupo+1] := Copy( cNumStr, (nGrupo - 1) * 3 + 1, 3);
  cEnLetra := '';
  for nGrupo := 5 downto 1 do
  begin
    cUnidad  := Copy( aGrupos[nGrupo],Length(aGrupos[nGrupo]),1);
    cDecena  := Copy( aGrupos[nGrupo], 2, 1 );
    cCentena := Copy( aGrupos[nGrupo], 1, 1 );
    //Componer la cifra en letra del grupo en curso.
    cEnLetra := cEnLetra + Centena ( StrToInt( cCentena ) + 1    ) +
                           Decena  ( StrToInt( cDecena  ) + 1, 1 ) +
                           Unidad  ( StrToInt( cUnidad  ) + 1    ) +
                           Conector( nGrupo                      );
  end;
  if Copy( cEnLetra, 1, 3 ) = 'mil' then
    result := 'un ' + cEnLetra + cDecStr
  else
    result := cEnLetra + cDecStr;
end;


saludos!

PD si no esta permitido este tipo de códigos quitadlo, solo quería colaborar.
Responder Con Cita
  #112  
Antiguo 27-08-2007
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Cita:
Empezado por BlackDaemon Ver Mensaje
Aunque no es exactamente inservible, por que hay componente que hacen lo mismo
No es lo mismo inútil que inservible. Inútil es que no tiene utilidad, o no se le conoce, mientras que inservible es que no funciona
Cita:
Empezado por BlackDaemon Ver Mensaje
PD si no esta permitido este tipo de códigos quitadlo, solo quería colaborar.
No veo por que no, siempre que al autor del código no le importe. Aunque no estaría mal que citaras el sitio donde la encontraste.
Responder Con Cita
  #113  
Antiguo 27-08-2007
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
tanto que batallé en el pasado y ahora en el club delphi he visto 3 funciones diferentes para convertir de números a letras.
Responder Con Cita
  #114  
Antiguo 27-08-2007
Avatar de BlackDaemon
BlackDaemon BlackDaemon is offline
Miembro
 
Registrado: dic 2006
Ubicación: Bolivia - Santa Cruz
Posts: 206
Poder: 18
BlackDaemon Va por buen camino
Cita:
No veo por que no, siempre que al autor del código no le importe. Aunque no estaría mal que citaras el sitio donde la encontraste.
Pues una lista del grupo albor, y no se, desconozco quien haya sigo el creador de dicho código, me agarro los créditos xDD

saludos!
Responder Con Cita
  #115  
Antiguo 28-08-2007
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.057
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Esa función de número a letras la escribió Carlos García Trujillo

************* Numero a Letra Versión 1.5 *****************
_________________________________________________________

Autor : Carlos García Trujillo
E-mail: cgar1136 @ yahoo.com
cgar1136 @ latinmail.com
http://www.geocities.com/ResearchTriangle/Node/2174/
_________________________________________________________
26 de Abril de 1999
Xalapa, Veracruz; México.

Última edición por Casimiro Notevi fecha: 28-08-2007 a las 08:54:40.
Responder Con Cita
  #116  
Antiguo 28-08-2007
Avatar de ArdiIIa
[ArdiIIa] ArdiIIa is offline
Miembro Premium
 
Registrado: nov 2003
Ubicación: Valencia city
Posts: 1.481
Poder: 22
ArdiIIa Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Esa función de número a letras la escribió Carlos García Trujillo
Pues le va a encantar ver su código en una sección de codigo sin utilidad..
[casi broma]
Por cierto: Tengo un ERP de una empresa que podría ir todo él en esta sección, pero el hilo dejaría de ser visitado...
[/casi broma]
__________________
Un poco de tu generosidad puede salvar la vida a un niño. ASÍ DE SENCILLO

Última edición por ArdiIIa fecha: 28-08-2007 a las 09:04:36.
Responder Con Cita
  #117  
Antiguo 10-09-2007
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
No se si hay alguien que todavía lea este hilo, pero yo sigo poniendo código, por si a alguien le interesa

La aplicación de hoy es un "Password hasher", que básicamente genera un password a partir de una etiqueta y una clave, bueno en realidad genera dos, una de ocho letras y otra diez.

Te preguntaras que utilidad tiene esto, pues muy simple, imagínate que necesitas utilizar contraseñas para acceder a 10 sitios de internet diferentes. Tienes varias alternativas, utilizar la misma contraseña en todos, lo cual no te recomiendo, o recordar 10 contraseñas diferentes. Este programa nos da otra tercera opción, recordar solo una clave (la que utilizamos en el programa), y generar una contraseña diferente para cada sitio, utilizando como "etiquetas" los nombres o direcciones de cada sitio.

Por ejemplo:
Código:
Sitio/etiqueta = clubdelphi.com
Clave=secreto
Hash generado -> Fu68DwJq / u6zSIXzd7v
Ventajas
  • Las contraseñas no se guardan en ningún sitio
  • Las contraseñas generadas son muy seguras
  • Solo hay que recordar una contraseña

PD: El algoritmo para generar las contraseñas se discutió en este hilo, ahí encontrarás otros algoritmos alternativos.
Archivos Adjuntos
Tipo de Archivo: zip PassHash.zip (10,5 KB, 20 visitas)

Última edición por seoane fecha: 10-09-2007 a las 16:41:05.
Responder Con Cita
  #118  
Antiguo 10-09-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Está muy curioso Domingo. Sin embargo hay algo que no termino de comprender bien. Con una "clave" (URL de un sitio Web, por ejemplo) y una "contraseña", se genera un "Hash"... o dos "Hash"... ¿por qué se parte en dos "lo que se genera"? ¿Y cuál de los dos "trozos" se supone que habría que usar? No lo entiendo...
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #119  
Antiguo 10-09-2007
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Cita:
Empezado por dec Ver Mensaje
Sin embargo hay algo que no termino de comprender bien. Con una "clave" (URL de un sitio Web, por ejemplo) y una "contraseña", se genera un "Hash"... o dos "Hash"... ¿por qué se parte en dos "lo que se genera"? ¿Y cuál de los dos "trozos" se supone que habría que usar? No lo entiendo...
Se generan dos por el precio de una

La primera (la de la izquierda) se genera utilizando md5 y tiene una longitud de 8 caracteres, las segunda se genera usando sha1 y tiene una longitud de 10 caracteres. Puedes usar la que prefieras, o juntar las dos, eso depende de la longitud de contraseña que necesites.
Responder Con Cita
  #120  
Antiguo 10-09-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Hum... ahora lo pillo entonces. Pues oyes, está bien. El asunto es que tengo una carpeta llena de subcarpetas con todas las contraseñas de sitios Web a los que me he registrado desde no se sabe cuándo muchos de ellos.

Y a veces he pensado en hacer algo con Delphi, algún programilla, porque, todos los que he visto por ahí... chico, no sé, unos por una cosa, otros por otra... son programas estupendos, pero, no me quedan a gusto.

Y bueno. Ese tercer "sistema" que has empleado para conseguir contraseñas me ha parecido curioso. Va a ser al final que no todo el código de este hilo es inútil del todo.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
Respuesta



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
Utilidad para comparar dos bases de datos. avmm2004 Varios 1 16-11-2006 20:47:22
Utilidad para contar lineas de código Alexander Varios 10 18-10-2006 00:14:55
Utilidad para manejo de lista TODO ANG4L Varios 3 02-08-2006 09:36:39
Cual es la utilidad de la paleta Server Gelmin Servers 1 05-03-2004 22:20:36
utilidad del application.tag Giniromero OOP 8 17-10-2003 12:21:53


La franja horaria es GMT +2. Ahora son las 11:36:02.


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