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 08-04-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 27
Delphius Va camino a la fama
Jeje... me ganaron... yo ya estaba preparando una función... pero bueno... mejor no intento.

Total, cuando vengan por aquí Domingo y Javier veremos como queda la cosa.

Mientras tanto veo como ganarles en ASM.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #2  
Antiguo 08-04-2008
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.141
Poder: 36
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Cita:
Empezado por egostar
mmmm, Yo ni siquiera he podido ver como funciona ese ReverseString(), no existe en mi rudimentario Delphi4
Aquí Zarko Gajic implementa una función "ReverseString()", e informa de que existe desde Delphi 6.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 08-04-2008
keyboy keyboy is offline
Miembro
 
Registrado: oct 2004
Posts: 367
Poder: 22
keyboy Va por buen camino
En realidad lo de ReverseString está muy jalado pues al final termina haciendo el recorrido inverso. Mucho mejor la de dec que creo se puede simplificar un poco:

Código Delphi [-]
function DameloYa(Dato: String): String;
var
  I: Integer;

begin
  for I := Length(Dato) downto 1 do
    if Dato[i] = ' ' then
      break;

  Result := Copy(Dato, I + 1, Length(Dato));
end;

Bye
Responder Con Cita
  #4  
Antiguo 08-04-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.572
Poder: 27
egostar Va camino a la fama
Cita:
Empezado por dec Ver Mensaje
Aquí Zarko Gajic implementa una función "ReverseString()", e informa de que existe desde Delphi 6.
Eso mismo pensé

Cita:
Empezado por keyboy Ver Mensaje
En realidad lo de ReverseString está muy jalado pues al final termina haciendo el recorrido inverso. Mucho mejor la de dec que creo se puede simplificar un poco:
Y bueno, como lo dije, ya he probado la función ReverseString() en mi TurboDelphi y puede ser que no sea tan "jalado" en ciertas circunstancias.

De cualquier forma esto me hace auto-enviarme a RTFM

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #5  
Antiguo 08-04-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 27
Caral Va por buen camino
Hola
Sois unos maestros, pero casualmente aveces no os dais cuenta de quien pregunta (el Novato).
Esto de las funciones me mata.
Alguien me lo traduce.
Recordad, tengo un combobox, de ahi parto, la información entra en el.
Como uso la función para llamar al dato que contiene el combobox.
Ya se, nunca aprenderé, pero de que lo intento, lo intento.
Saludos
Responder Con Cita
  #6  
Antiguo 08-04-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.572
Poder: 27
egostar Va camino a la fama
Cita:
Empezado por Caral Ver Mensaje
Hola
Sois unos maestros, pero casualmente aveces no os dais cuenta de quien pregunta (el Novato).
Esto de las funciones me mata.
Alguien me lo traduce.
Recordad, tengo un combobox, de ahi parto, la información entra en el.
Como uso la función para llamar al dato que contiene el combobox.
Ya se, nunca aprenderé, pero de que lo intento, lo intento.
Saludos
Hola amigo "NOVATO" , lo que pasa es que no entiendo que es lo que quieres hacer, la parte de obtener el color ya está resuelta, ahora hay que resolver lo que tu mente quiere hacer

Será que nos expliques un poco mas a detalle que es lo que intentas?

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #7  
Antiguo 08-04-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 27
Caral Va por buen camino
Hola
Que poca paciencia me tienes, te esta volviendo viejo amigo.
Vamos otra vez.
Tengo un campo. (text)
Recojo el dato en un combobox.
Ahora con la función que hicisteis quiero saber la ultima parte de ese dato.
No lo capto, seguro es facil y vosotros lo veis, pero yo no.
Anda, que no te cuesta nada explicárselo al Novato.
Saludos
Responder Con Cita
  #8  
Antiguo 12-04-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 27
Caral Va por buen camino
Hola
Retomando este tema.
La función devuelve el ultimo dato (usando cualquiera de las funciones).
Me preguntaba si seria posible que devolviera el dato que uno necesite, el primero o el segundo o el ultimo (como en este caso).
Lo He intentado pero al contar el dato de atrás para adelante me coloca todas las palabras según van.
Se podrá hacer la diferenciación? o se necesitara otra función.?
Gracias
Saludos
Responder Con Cita
  #9  
Antiguo 12-04-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 27
Delphius Va camino a la fama
Mi buen amigo Carlos, ¿Por casualidad te refieres a esto?

Código Delphi [-]
TLaminaInfo = (liName, liDimension, liColor);

function GetLaminaInfo(LaminaText: string; Info: TLaminaInfo): string;
var PosIni, PosEnd: integer;
begin
  //preventiva
  PosIni := 0;
  PosEnd := 0;

  // Dependiendo de la info a pedir, calculamos posiciones
  // iniciales y finales
  case Info of
  liName: begin
            Posini := 1;
            PosEnd := Pos(' ',LaminaText);
          end;
  liDimension: begin
                 PosIni := Pos(' ',LaminaText) + 1;
                 PosEnd := Length(LaminaText) - Pos(' ',ReverseString(LaminaText)) + 2;
               end;
  liColor: begin
             PosIni := Length(LaminaText) - Pos(' ',ReverseString(LaminaText)) + 1;
             PosEnd := Length(LaminaText) + 1;
           end;
  end;

  // copiamos el texto que esté comprendido desde PosIni a PosEnd
  result := Copy(LaminaText,PosIni,PosEnd - PosIni);
end;

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #10  
Antiguo 12-04-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 27
Caral Va por buen camino
Hola
Gracias Marcelo por contestar.
Tengo algunas preguntas:
Esta parte es una variable publica??:
Código Delphi [-]
TLaminaInfo = (liName, liDimension, liColor);
Ahora para llamar a la funcion que tengo lo hago asi:
En este caso solo devuelve el ultimo valor.
Código Delphi [-]
procedure TForm1.ComboBox1Change(Sender: TObject);
var
ColorL: string;
begin
 ColorL:= DameElTipo(ComboBox1.Text);
 showmessage(ColorL);
end;
Como haria para llamar a tu funcion???.
Supongo que tengo que indicar el tipo (Posin) o (PosEnd), pero no se como hacerlo.
Saludos
Responder Con Cita
  #11  
Antiguo 12-04-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 27
Delphius Va camino a la fama
Perdón amigo, me olvidé de indicar que TLaminaInfo es un tipo de dato:

Código Delphi [-]
type
TTLaminaInfo = (liName, liDimension, liColor);

Y un ejemplo de uso de dicha función es el siguiente:

Código Delphi [-]
Edit1.Text := GetLaminaInfo(ComboBox1.Text,liName);
// con liName se obtiene el nombre, Por ejemplo: 'LAMINA'

Edit1.Text := GetLaminaInfo(ComboBox1.Text,liDimension);
// con liDimension se obtiene la dimensión. Por ejemplo: '132 X 185'

Edit1.Text := GetLaminaInfo(ComboBox1.Text,liColor);
// con liColor se obtiene el color, Por ejemplo: BONE.

El primer parámetro de la función es el texto completo. Por ejemplo: LAMINA 135 X 185 BONE. El segundo, el tipo de información a extraer.

Ahora que lo pienso y viendo lo que deseas hacer se debería modificar el tipo para mejorar el ejemplo:

Código Delphi [-]
type
TLaminaInfo = (liName = 0, liDimension = 1, liColor = 2);

De este modo puedes hacer coincidir los indices del Combo o de algún otro control con el tipo de dato. Por ejemplo:

Código Delphi [-]
Edit1.Text := GetLaminaText(Edit2.Text,ComboBox1.ItemIndex);

Suponiendo que en Edit2.Text estés guardando el texto completo e ItemIndex del combo represente el tipo de información que pide.

Mi función es probable que pueda ser mejorada para tus propósitos. La verdad es que la hice en 5 minutos, y no he pensado mucho en las posibilidades que necesitas. Mi intención era mostrar más o menos lo que entendía de tus requisitos.

Si es esto lo que andas buscando dimelo, y si no lo es, también dímelo (con tirón de orejas por no haber prestado demasiada atención).

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Obtener la parte decimal de un campo money mbelda MS SQL Server 4 08-02-2008 16:10:21
extraer un parte de un campo fecha de interbase!!! antonio peña SQL 2 04-10-2006 01:11:47
Identificar el tipo de dato kayetano MySQL 1 28-07-2004 19:43:54
como buscar dentro de una consulta un texto que sea parte de la descripcion viajero2015 Conexión con bases de datos 1 15-11-2003 05:18:09
eliminar parte de los datos de un campo acrophet Conexión con bases de datos 1 16-10-2003 13:07:51


La franja horaria es GMT +2. Ahora son las 13:48:18.


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