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...????
|
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???
|
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:
Ejemplo de uso:
Saludos. |
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.
en el caso de que haya mas espacios, primero encontramos el ultimo espacio para hacer el copy. Saluditos |
esa function de extraer numero la pongo en la parte private o public de la unidad del form???
|
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... |
Cita:
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. |
Cita:
O dependiendo de lo que desees, también podrías hacer: Siendo el código de la función ExtraerNum el que elijas. Saludos. |
Cita:
Saluditos |
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 |
Cita:
Saluditos |
Me sigue pasando lo mismo, sigue sumando 1+45=145
|
Cita:
Saluditos |
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)); |
puse el codigo de ecfisa por que fue el que me dejo apenas el numero, que es lo que queria
|
Recuerda poner los tags al código fuente, ejemplo:
|
Hola, es lo que te decía estas concatenando, prueba así:
Saluditos |
Cita:
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: 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:
Saludos. Edito: Si no le gustan los nombres... Escucho sugerencias :D |
Muchas gracias a todos, Dios me los bendiga, cualquier otra pregunta del tema, se las estare informando...
|
Cita:
Saluditos |
Cita:
Cariños. :) |
¿Alguien me ha llamado? ;):)
|
Una pregunta a este codigo:
quiero sacarle el 10% y que se vea en el mismo listbox, lo hice pero me daba error, por q creo que como se saca el 10% debe ser float o real y uso puro integer...?? |
medice que Error: Operator is not overloaded no c que pasara??
|
¿Y por qué no pones el código que has usado?
|
me dice: Error: Operator is not overloaded |
Cita:
Cita:
Saluditos |
Gracias tendre en cuenta mucho lo de lo de no confundir strings con integers o reales, casi siempre me pasa eso...
|
gracias por los datos tratare de hacerlo como lo dicen ustedes gracias
|
La franja horaria es GMT +2. Ahora son las 06:01:45. |
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