Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Mudar Estas funciones de vb a Delphi (https://www.clubdelphi.com/foros/showthread.php?t=61752)

ColdFusion 20-11-2008 19:39:32

Mudar Estas funciones de vb a Delphi
 
Hola si alguien me puede ayuda como pasar estas siguientes funciones de vb a delphi es decir que me explique si existen o como hacer las:
por ejemplo
dim v as integer

for v = 0 to 100

next v

otro:

como hago esto

s = s * rnd

existe Asc en delphi o lo tengo que hacer
por ejemplo Asc(Left(HexChr, 1)

existe el: Left, Right, Mid
y si no, como los puedo hacer?.


existe Mod si no existe que me digan si lo puedo hacer.
y como.

la \ que representa en delphi

como se hace:
CStr
Len
UBound

como puedo crear el split()

por los momentos solo nesecito saber esas funciones, las nesecito con urgencia, ayuda porfavor :o

ContraVeneno 20-11-2008 19:58:08

Cita:

Empezado por ColdFusion (Mensaje 327044)
for
s = s * rnd
Asc
existe el: Left, Right, Mid

existe Mod

la \ que representa en delphi

como se hace:
CStr
Len
UBound

como puedo crear el split()

El "for" sí existe en delphi, "Rnd" en delphi es "Random".
No se que hace Asc.
Left rigth mid, sí existen, están en la unidad StrUtils como LeftStr, RightStr, MidStr
Mod sí existe en Delphi (también puedes ver la función DivMod de la unidad Math)
No se que hace Cstr, Len es igual en Delphi, No se que hace UBound.

Te recomiendo leer este enlace.

Y para todas tus dudas, puedes consultar la ayuda de delphi presionando F1, viene muy complenta, con muchos ejemplos.

ColdFusion 20-11-2008 20:01:44

si el for existe pero

termina en break; verda

pero como hago que sea asi next variable Integer
como se hace en delphi

ContraVeneno 20-11-2008 20:08:29

Consultando la ayuda de delphi (Presionando F1):
Código Delphi [-]
  for I := 0 to Lista.Count - 1 do begin
    showmessage(IntToStr(I));
  end;

También puedes consultar delphibasics:

http://www.delphibasics.co.uk/RTL.asp?Name=For

Delphius 20-11-2008 20:11:19

Hola ColdFusion,
No es por nada pero creo que lo mejor para ti es que buscaras el libro de Luis Joyanes Aguilar sobre Pascal.

Delphi es una evolución de éste, pero mantiene la misma sintaxis de Pascal. En ese libro está lo más básico de lo básico y son las cosas que estás buscando. Ejemplos de for:

for variable := [contante|variable] [downto|to] [constante|variable] do
sentencia

Pero en caso de que se necesite de muchas sentencias se debe incorporar el uso de begin-end:

for variable := [contante|variable] [downto|to] [constante|variable] do
begin
sentencias
end

Saludos,

ColdFusion 20-11-2008 20:23:39

ok eso me keda claro, ahora surge otra duda
como uso el
select case

nesecito alguien que sepa programar en vb y delphi para que me pueda ayuda

es que nesecito UBound

por ejemplo esta funcion

Function StrIPToHexIP(IpStr As String) As String
Dim SplitIp() As String
Dim ConvertingLoop As Integer
SplitIp = Split(IpStr, ".")
For ConvertingLoop = 0 To UBound(SplitIp)
StrIPToHexIP = StrIPToHexIP + Chr(SplitIp(ConvertingLoop))
Next ConvertingLoop
End Function

el CStr

Function HexIPToStrIp(IpStr As String) As String
Dim ConvertingLoop As Integer
For ConvertingLoop = 1 To 4
HexIPToStrIp = HexIPToStrIp + CStr(Asc(Mid(IpStr, ConvertingLoop, 1))) + "."
Next ConvertingLoop
HexIPToStrIp = Left(HexIPToStrIp, Len(HexIPToStrIp) - 1)
End Function

ContraVeneno 20-11-2008 23:14:53

El "select Case" de VB es "Case [Arguemento] Of" en Delphi. Puedes consultar la ayuda de delphi o la página de Delphi Basics para más información.

Sigo sin saber que es lo que hace la función UBound ni la función Split, pero me imagino.

Si son operaciones matemáticas, puedes consultar en la ayuda de delphi la unidad Math, ahí podrás ver todas las funcione que tienes disponibles. Para operaciones con cadenas de caracteres (strings) puedes consultar la unidad StrUtils y podrás ver todas las funciones que tiene disponibles.

Delfin 21-11-2008 16:36:36

Cita:

Empezado por ColdFusion (Mensaje 327058)
Código:

Function StrIPToHexIP(IpStr As String) As String
Dim SplitIp() As String
Dim ConvertingLoop As Integer
SplitIp = Split(IpStr, ".")
For ConvertingLoop = 0 To UBound(SplitIp)
StrIPToHexIP = StrIPToHexIP + Chr(SplitIp(ConvertingLoop))
Next ConvertingLoop
End Function


Tengo entendido que el UBound es para calcular el numero de elementos que tiene el arreglo. Lo que puedes hacer es meter tu cadena que tiene el arreglo en un TStringList de la siguiente manera:

Código Delphi [-]
Var
      Lista : TStringList;
begin
      Lista := TStringList.Create;
      Lista.DelimitedText := '192.98.34.9'; //En tu caso, tu variable por parámetro para la función
      Lista.Delimiter := '.';
      Maximo := Lista.Count; ///Este sería el equivalente de UBound para los StringList
      .... ///Ya aquí iría el resto de la implementación de la función

Ten en cuenta que los índices de los elementos de los StringList comienzan en 0, por lo que tu for en este caso, iría desde 0 hasta Maximo - 1. Ahora bien:

Cita:

Empezado por ColdFusion (Mensaje 327058)
el CStr

CStr convierte a cadena una variable, por tanto puedes usar cualquiera de las rutinas de conversión correspondientes (FloatToStr, IntToStr, etc). Consulta la ayuda de la unidad SysUtils, pues ahí estan todas las opciones que tienes disponibles y también StrUtils como dijeron anteriormente.

¡Saludos!

Robert01 21-11-2008 16:44:16

A ver si anda de e sta manera:

Código Delphi [-]
 function StrIPToHexIP(IpStr:string) : string;
   function HexIPToStrIp(IpStr:string) : string;
implementation
 
function StrIPToHexIP(IpStr:string) : string;
var
    ConvertingLoop : longint;
    SplitIp : array of string;
begin 
   SplitIp := Split( IpStr , '.' ); 
   for ConvertingLoop := 0  to UBound( SplitIp )  do begin 
      StrIPToHexIP := StrIPToHexIP+chr( SplitIp[ConvertingLoop] ); 
   end; 
end; 
 
function HexIPToStrIp(IpStr:string) : string;
var
    ConvertingLoop : longint;
begin 
   for ConvertingLoop := 1  to 4  do begin 
      HexIPToStrIp := HexIPToStrIp+CStr( ord( copy( IpStr , ConvertingLoop , 1 ) ) )+'.'; 
   end; 
   HexIPToStrIp := left( HexIPToStrIp , length( HexIPToStrIp )-1 ); 
end;

Saludos

THc 22-01-2009 01:45:58

Asc()
 
Hola ColdFusion, el equivalente para ASC() en Delphi es Byte(). Para CHR$() son Chr() o Char().

Un saludo.


La franja horaria es GMT +2. Ahora son las 01:04:14.

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