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
  #1  
Antiguo 25-02-2008
Avatar de acertij022
acertij022 acertij022 is offline
Miembro
 
Registrado: may 2003
Ubicación: Argentina-Bs. As.
Posts: 233
Poder: 21
acertij022 Va por buen camino
string a integer?

Hola Foristas se me presento una inquietud, necesito transformar un aray de char (tomado de memoria ) a Integer pero no encuentro nada y no entiendo la realacion en que delphi guarda un enetero a l disco

por ejemplo el numero 18 si lo guardo como archivo de entero me guarda en el archivo 0x12 0x00 0x00 0x00 y necesitaria saber la logica para poder tener apartir de los 4 bytes el entero.

Desdea ya muchas gracias anticipadas
Responder Con Cita
  #2  
Antiguo 25-02-2008
Avatar de acertij022
acertij022 acertij022 is offline
Miembro
 
Registrado: may 2003
Ubicación: Argentina-Bs. As.
Posts: 233
Poder: 21
acertij022 Va por buen camino
me respondo ami mismo en c:
el numero 18 se guara en 4 bytes = 0x00 0x00 0x00 0x12 =(ord(Str1[1])*16777216)+(ord(Str1[2])*65536)+(ord(Str1[3])*256)+ord(Str1[4])
pero en delphi se graba al reves:
0x12 0x00 0x00 0x00 = (ord(Str1[4])*16777216)+(ord(Str1[3])*65536)+(ord(Str1[2])*256)+ord(Str1[1])

es algo tonto pero me tomo toda la mañana
Responder Con Cita
  #3  
Antiguo 25-02-2008
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
a caray... no pues que complejo para mis novatos conocimientos...

yo hiba a proponer la funcion "TryStrToInt" o "StrtoInt", pero veo que es más que solo eso.....
__________________

Responder Con Cita
  #4  
Antiguo 26-02-2008
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
El por que se escriben en ese orden, no es un asunto de delphi, es un asunto de intel.

Lee sobre Endianness y lo comprenderás.

Hasta luego.



Edito: el artículo en inglés es mucho mas completo (como suele suceder): http://en.wikipedia.org/wiki/Endianness
__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #5  
Antiguo 26-02-2008
Avatar de Lord Delfos
Lord Delfos Lord Delfos is offline
Miembro
 
Registrado: ene 2008
Ubicación: Tandil, Argentina
Posts: 558
Poder: 17
Lord Delfos Va por buen camino
Hola, acertij022.

Yo he hecho algo así:

Código Delphi [-]
var Arreglo:array[1..4] of char;
    Destino:integer;
    p:PChar;
begin
  p:=@Destino; //p apunta al primer byte de Destino
  p^:=Arreglo[1];inc(p); // Seteamos el destino de p con el valor del arreglo e 
                                //  incrementamos el puntero para ir a la segunda posición.
  p^:=Arreglo[2];inc(p);// Y así sucesivamente...
  p^:=Arreglo[3];inc(p);
  p^:=Arreglo[4];
end;

Dos cosas a tener en cuenta.

[1] La endianess del tipo. No sé qué pasaría si el integer fuera big-endian...
[2] El tipo de dato integer es genérico, y no necesariamente va a tener 32 bits... Sería más seguro usar Longint, que siempre va a tener 32 bits.

Espero te sirva. Saludongos.

Última edición por Lord Delfos fecha: 26-02-2008 a las 23:26:53.
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
String a Integer tuflotas Varios 9 22-01-2008 21:09:34
Integer a String en PHP noshy PHP 13 06-08-2007 19:26:36
string a Integer Juanito-Kun Varios 4 06-10-2005 12:53:43
de String a Integer!! kye_z Varios 2 20-11-2004 20:04:36
Pasar String a Integer ramonibk Varios 12 09-09-2004 17:20:20


La franja horaria es GMT +2. Ahora son las 02:54:19.


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