Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-01-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por delphi.com.ar
Entonces si modifico S2 se modifica S1??
No, pero mira esto:

Código Delphi [-]
var
  S, T: String;

begin
  S := 'Hola';
  T := S;

  Assert(Addr(Pointer(S)^) = Addr(Pointer(T)^));

  S[1] := 'P';

  Assert(Addr(Pointer(S)^) = Addr(Pointer(T)^));
end;

El primer Assert no falla, luego de la asignación, S y T realmente apuntan a lo mismo. El segundo Assert falla, al modificar S es cuando se crea la copia.

// Saludos
Responder Con Cita
  #2  
Antiguo 09-01-2006
[Gunman] [Gunman] is offline
Miembro
 
Registrado: dic 2004
Ubicación: Pedreguer.
Posts: 355
Poder: 22
[Gunman] Va por buen camino
A mi me pasa que no encuentro funcionalidad a los punteros, seguramente porqué no tenga muy claro el tema, o porqué no haya profundizado en la programación, sólo soy un novato, apenas un año que trabajo con Delphi, es decir, programo "en serio" (a mi un año me parece poco, no sé si es poco o es que soy imbécil y más vale que me dedica a recoger setas (no quiero decir con esto que los que recojen setas son imbéciles, sólo lo aplico a mi caso)).
Ahora he empezado con C, si, he manejado punteros, pero claro, són los ejemplos del libro y ejercicios, si tuvíese que hacer un programa... No se me ocurririan para nada (creo) los punteros.
Bueno, no sé, como llevastéis el tema de los punteros al inicio de vuestra vida como programadores?
__________________
l2prog.co.nr
Responder Con Cita
  #3  
Antiguo 09-01-2006
Delfino Delfino is offline
Miembro
 
Registrado: jul 2003
Ubicación: Madrid
Posts: 974
Poder: 24
Delfino Va por buen camino
Cita:
A mi me pasa que no encuentro funcionalidad a los punteros
Pero si el mismo Delphi esta hecho con punteros, todos los objectos Delphi son punteros a memoria, por ejemplo label1.text, label1 en este caso es un puntero, pero Delphi oculta esta dificultad pq sus desarroladores querian q sea tan facil de usar como VB, este modelo llamado reference object model facilita mucho las cosas ya q al poner por ejemplo label2.text := label1.text, el puntero label2 apunta al mismo objeto en memoria q label1 sin tener q copiar toda la estrctura de label1 y duplicarla.
aunque tengo algunos conocimientos de punteros casi nunca he tenido q usarlos con Delphi, o mejor dicho siempre los he suado sin saber
__________________
¿Microsoft? No, gracias..
Responder Con Cita
  #4  
Antiguo 09-01-2006
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.964
Poder: 29
delphi.com.ar Va camino a la fama
Cita:
Empezado por roman
El primer Assert no falla, luego de la asignación, S y T realmente apuntan a lo mismo. El segundo Assert falla, al modificar S es cuando se crea la copia.
Es verdad, la copia no se crea hasta que sea alterado si es que lo es. (Creo que vamos a terminar mareando a elcigarra )
Insisto con que no funciona en todas las versiones igual, recuerdo haber leído que había que tener precauciones en el uso de strings Delphi 6, porque borland hizo un cambio de filosofía que descartó para la versión 7. Sinceramente como no utilizo esta versión no recuerdo cuales son estos cambios.
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.

Última edición por delphi.com.ar fecha: 09-01-2006 a las 21:59:25.
Responder Con Cita
  #5  
Antiguo 09-01-2006
elcigarra elcigarra is offline
Miembro
 
Registrado: may 2005
Posts: 269
Poder: 22
elcigarra Va por buen camino
No se preocupen que no hay mareo alguno. Tal vez por deformación universitaria (en química, no informática), mi cerebro se acostumbró a eliminar los conceptos que no entiende rodeándolos por lugares conocido para nunca perderme. Tal vez sea esto lo que me pasa con los punteros, porque si no encuentro una situación en la que sea necesario usarlos nunca los aprenda. En cierta forma es utilizar el trabajo bruto en vez de la inteligencia. Tal vez Dios quería que yo trabajara en los campos de algodón y el hereje le salió científico y campesino de la informática.

Además de conservar mis manos no demasiado cuarteadas, hasta ahora me ha ido bien esquivando dificultades. Entiendo que a veces las API te piden pasar un puntero dentro de una función y eso es lo que hago: pasarle un puntero. No sin pensar en que el idiota que programó esta función podría haber utilizado variables y así hacer que no se note tanto mi ignorancia equina. De todas formas andaba igual. Sí estoy seguro que ahorra tiempo, pero el tiempo no ha sido un parámetro crítico hasta ahora en ninguno de mis programas. En ninguno se notaría la mejora.

No vale decir que sí los uso implícitamente porque el Delphi los usa sin que yo me de cuenta. Supongo que sí, pero yo me refería a usarlos en forma explícita. Y leyendo lo que Uds. escriben creo que sí puede llegar a ser beneficioso en cuanto a "economía informática", pero necesario... no lo creo. Tal vez si lo supiera usar podría impresionar un poco a mis colegas aficionados y tal vez a Gunman , pero por ahora tendré que programar con su mismo nivel de... bueno, llamémosle ignorancia .
Responder Con Cita
  #6  
Antiguo 09-01-2006
[Gunman] [Gunman] is offline
Miembro
 
Registrado: dic 2004
Ubicación: Pedreguer.
Posts: 355
Poder: 22
[Gunman] Va por buen camino
Delfino, no quería decir que no tiene funcionalidad, sino que yo, a la hora de hacer mis programillas en Delphi, no encuentro la necesidad de usarlos por la razón que sea (véase mi anteriror intervención). No pongo en duda la funcionalidad de los punteros ni que sean beneficiosos a la hora de ahorra consumo de memoria y otras ventajas que seguro que tienen, sólo estava utilizando este espacio un poco como de psiquiatria, ya que me he identificado con el cigarra, y pregunto? Es un tema complicado, o como he dicho es que yo soy algo corto? A todos os ha costado, somos sólo yo y elcigarra?
__________________
l2prog.co.nr
Responder Con Cita
  #7  
Antiguo 10-01-2006
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.678
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
No hace falta cambiar el oficio por el de "recogedor de setas" ni nada por el estilo, aunque para pasar un domingo está bien.

Aprender a usar "correctamente" los punteros es igual que todas las cosas en esta vida: leer y practicar, cuando se sabe ya todo es fácil.
Responder Con Cita
  #8  
Antiguo 10-01-2006
Delfino Delfino is offline
Miembro
 
Registrado: jul 2003
Ubicación: Madrid
Posts: 974
Poder: 24
Delfino Va por buen camino
Cita:
No pongo en duda la funcionalidad de los punteros ni que sean beneficiosos a la hora de ahorra consumo de memoria y otras ventajas
No es q tengan ventajas, sino q vaces son impresindibles y no hay otra forma de hacer lo q se quiere hacer sin los punteros y el dinamico uso de memoria, por ejemplo en tlist no se sabe cuantos elementos tendra, asi q la unica solucion es ir adquiriendo (allocate) memoria segun las necesidades. Y esta es la verdadera utilidad de los punteros.
__________________
¿Microsoft? No, gracias..

Última edición por Delfino fecha: 10-01-2006 a las 11:27:32.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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


La franja horaria es GMT +2. Ahora son las 16:39:22.


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