Club Delphi  
    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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-04-2012
moise094 moise094 is offline
Miembro
NULL
 
Registrado: ene 2012
Posts: 19
Poder: 0
moise094 Va por buen camino
Post Pregunta sobrelistbox

Tengo en un listbox un item mixto es decir por ejmplo JUAN 45, y quiero sumar un numero cualquiera con el numero 45 que puse de ejemplo, como se haria para extraer el numero 45 en un edit o algo por el estilo...????
Responder Con Cita
  #2  
Antiguo 23-04-2012
moise094 moise094 is offline
Miembro
NULL
 
Registrado: ene 2012
Posts: 19
Poder: 0
moise094 Va por buen camino
mas conciso: como haria para extraer de un item mixto de un listbox el numero, por ejemplo teniendo en el item juan 45, extraerlo en un edit o cualquier cosa???
Responder Con Cita
  #3  
Antiguo 23-04-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola moise094 y bienvenido a Club Delphi

Como a todos los que se inician te invitamos a que leas nuestra guía de estilo.

Una opción puede ser:
Código Delphi [-]
function ExtraerNum(cad:string): string;
var
  i: Integer;
begin
  i:=0;
  while not (cad[i] in ['0'..'9']) do Inc(i);
  repeat
    Result:= Result + cad[i];
    Inc(i);
  until not (cad[i] in ['0'..'9']);
end;

Ejemplo de uso:
Código Delphi [-]
procedure TForm1.ListBox1Click(Sender: TObject);
begin
  with TListBox(Sender) do
    Caption:= ExtraerNum(Items[ItemIndex]);
end;

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 23-04-2012 a las 21:17:27.
Responder Con Cita
  #4  
Antiguo 23-04-2012
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola moise094, otra opción, si el número va a estar siempre al final separado por un espacio, podemos utilizar las funciones Pos y Copy.

Código Delphi [-]
var
 PosIni : Integer;
 Valor, item : String;
begin
 item := ListBox1.Items[ListBox1.ItemIndex];
 PosIni := Pos(' ', item);
 Valor := Copy(item, PosIni+1, Length(item)-PosIni);
 Showmessage(Valor);

en el caso de que haya mas espacios, primero encontramos el ultimo espacio para hacer el copy.

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #5  
Antiguo 23-04-2012
moise094 moise094 is offline
Miembro
NULL
 
Registrado: ene 2012
Posts: 19
Poder: 0
moise094 Va por buen camino
esa function de extraer numero la pongo en la parte private o public de la unidad del form???
Responder Con Cita
  #6  
Antiguo 23-04-2012
moise094 moise094 is offline
Miembro
NULL
 
Registrado: ene 2012
Posts: 19
Poder: 0
moise094 Va por buen camino
El caso es el siguiente, voy a abrir un documento .txt en un listbox y este tiene:
JUAN 45
JOSE 56

y quiero que al abrir el archivo, me aparezca en un edit cualquiera el numero 45
es decir el listbox va siempre a tener varios items...
Responder Con Cita
  #7  
Antiguo 23-04-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por moise094 Ver Mensaje
esa function de extraer numero la pongo en la parte private o public de la unidad del form???
Son funciónes no métodos por lo que básta con que las situes en la sección de implementación (implementation), aunque también podés hacerlas como un método privado o público.

Cualquiera de las funciones (la de Caro o la que te puse) van a realizar la tarea. Pero si el número siempre está al final y existe al menos un espacio entre nombre y número, es mejor que utilices la que te propuso Caro.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 23-04-2012 a las 21:45:55.
Responder Con Cita
  #8  
Antiguo 23-04-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por moise094 Ver Mensaje
El caso es el siguiente, voy a abrir un documento .txt en un listbox y este tiene:
JUAN 45
JOSE 56

y quiero que al abrir el archivo, me aparezca en un edit cualquiera el numero 45
es decir el listbox va siempre a tener varios items...
Entonces sería:
Código Delphi [-]
procedure TForm1.ListBox1Click(Sender: TObject);
begin
  with TListBox(Sender) do
    Edit1.Text := ExtraerNum(Items[ItemIndex]);
end;
O dependiendo de lo que desees, también podrías hacer:
Código Delphi [-]
procedure TForm1.Edit1Enter(Sender: TObject);
begin
  with ListBox1 do
    Edit1.Text := ExtraerNum(Items[ItemIndex]);
end;
Siendo el código de la función ExtraerNum el que elijas.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #9  
Antiguo 23-04-2012
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Cita:
Empezado por moise094 Ver Mensaje
El caso es el siguiente, voy a abrir un documento .txt en un listbox y este tiene:
JUAN 45
JOSE 56

y quiero que al abrir el archivo, me aparezca en un edit cualquiera el numero 45
es decir el listbox va siempre a tener varios items...
Lo mio sería parecido al de ecfisa:

Código Delphi [-]
//el codigo que te puse lo colocamos en una función
function ExtraerNum(Item : String) : String;
var
 PosIni : Integer;
 Valor : String;
begin
 PosIni := Pos(' ', item);
 Valor := Copy(item, PosIni+1, Length(item)-PosIni);
 Result := Valor;
end;

//ahora para llamar
//despues de cargar el archivo en el listbox, mostramos el número
//del item que esta en la posión 0

 ListBox1.Items.LoadFromFile('c:\xxx\file.txt');
 Edit1.Text := ExtraerNumero(ListBox1.Items[0]);

//ahora cada ves que selecciones un nuevo item utilizas el evento Onclick
procedure TForm1.ListBox1Click(Sender: TObject);
begin
 Edit1.Text := ExtraerNumero(ListBox1.Items[ListBox1.ItemIndex]);
end;

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #10  
Antiguo 23-04-2012
moise094 moise094 is offline
Miembro
NULL
 
Registrado: ene 2012
Posts: 19
Poder: 0
moise094 Va por buen camino
Muchas gracias ya pude extraer el numero,
AHORA LO QUE PASA ES ESTO
se extrajo el numero pero al sumarlo con el numero que voy a meter no me suma sino que hace esto:
1+45=145
Responder Con Cita
  #11  
Antiguo 23-04-2012
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Cita:
Empezado por moise094 Ver Mensaje
Muchas gracias ya pude extraer el numero,
AHORA LO QUE PASA ES ESTO
se extrajo el numero pero al sumarlo con el numero que voy a meter no me suma sino que hace esto:
1+45=145
Hola, tienes que convertir a entero el número que has extraido para hacer la suma.

Código Delphi [-]
var
 Numero : Integer;
begin
 Numero := StrToInt(ExtraerNumero(ListBox1.Items[ListBox1.ItemIndex]))+1;
 Edit1.Text := IntToStr(Numero);

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #12  
Antiguo 23-04-2012
moise094 moise094 is offline
Miembro
NULL
 
Registrado: ene 2012
Posts: 19
Poder: 0
moise094 Va por buen camino
Me sigue pasando lo mismo, sigue sumando 1+45=145
Responder Con Cita
  #13  
Antiguo 23-04-2012
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Cita:
Empezado por moise094 Ver Mensaje
Me sigue pasando lo mismo, sigue sumando 1+45=145
Muestranos el codigo que estas utilizando, porque lo que estas haciendo es concatenar los dos numeros.

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #14  
Antiguo 23-04-2012
moise094 moise094 is offline
Miembro
NULL
 
Registrado: ene 2012
Posts: 19
Poder: 0
moise094 Va por buen camino
primero que todo puse el codigo de ecfisa
function TForm3.ExtraerNum(cad:string): string;
var
i: Integer;
begin
i:=0;
while not (cad[i] in ['0'..'9']) do Inc(i);
repeat
Result:= Result + cad[i];
Inc(i);
until not (cad[i] in ['0'..'9']);
end;

Luego pongo

var
Numero : Integer;

begin
Numero:=StrToInt(ExtraerNum(Listbox1.Items[1]));
Edit1.text:=IntToStr(Numero);
end;


Despues como quiero que lo sume con un numero que meto en un edit,
y pongo

Listbox1.Items.add('Ventas: '+(Intttostr(va.sumaing))+(Edit6.Text));
Responder Con Cita
  #15  
Antiguo 23-04-2012
moise094 moise094 is offline
Miembro
NULL
 
Registrado: ene 2012
Posts: 19
Poder: 0
moise094 Va por buen camino
puse el codigo de ecfisa por que fue el que me dejo apenas el numero, que es lo que queria
Responder Con Cita
  #16  
Antiguo 23-04-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Recuerda poner los tags al código fuente, ejemplo:
Responder Con Cita
  #17  
Antiguo 23-04-2012
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola, es lo que te decía estas concatenando, prueba así:

Código Delphi [-]
 Listbox1.Items.add('Ventas:  '+Inttostr(va.sumaing+StrtoInt(Edit6.Text)));

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #18  
Antiguo 23-04-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por moise094 Ver Mensaje
Muchas gracias ya pude extraer el numero,
AHORA LO QUE PASA ES ESTO
se extrajo el numero pero al sumarlo con el numero que voy a meter no me suma sino que hace esto:
1+45=145
Hola.

La función te devuelve una cadena de caracteres, como por ejemplo '32', que de ningún modo es lo mismo que el número 32. Por ejemplo:
Código Delphi [-]
   Edit1.Text:= ExtraerNumero('RANINQUEO 15')+ExtraerNumero('ROBUSTIANA 80');
No esperes ver en el edit el número 95, lo que verás es '1580' que resulta de concatenar '15' y '80'. Para poder obtener el número 95 tenes que realizar las conversiones correspondientes tál como te indica Caro.

Retomando el ejemplo que te puse arriba, para obtener 15+80 sería:
Código Delphi [-]
  Edit1.Text:= IntToStr(StrToInt(ExtraerNumero('RANINQUEO 15'))+StrToInt(ExtraerNumero('ROBUSTIANA 80')));

Saludos.

Edito: Si no le gustan los nombres... Escucho sugerencias
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 24-04-2012 a las 00:03:31.
Responder Con Cita
  #19  
Antiguo 24-04-2012
moise094 moise094 is offline
Miembro
NULL
 
Registrado: ene 2012
Posts: 19
Poder: 0
moise094 Va por buen camino
Muchas gracias a todos, Dios me los bendiga, cualquier otra pregunta del tema, se las estare informando...
Responder Con Cita
  #20  
Antiguo 24-04-2012
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Edito: Si no le gustan los nombres... Escucho sugerencias
Hola ecfisa, el de Robustiana me gusta , el otro podría ser Saturnino o también Casimiro .

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
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
La pregunta jcarteagaf Humor 2 09-02-2010 22:23:34
Una pregunta de msn Arcioneo Windows 4 13-07-2006 17:11:16
Pregunta Isaac JAVA 1 23-09-2004 13:28:02
Pregunta Jesus Armando DB2 4 30-12-2003 04:27:23
Pregunta edwin1 OOP 0 23-07-2003 15:26:54


La franja horaria es GMT +2. Ahora son las 20:36:51.


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