![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|
|
#1
|
||||
|
||||
|
Hola kbaby... el siguiente código es un ejemplo de lo que buscas:
El código funciona, siempre que busques el DNI. Si buscas el apellido o cualquier otro dato no vas a obtener lo que deseas... Hice el supuesto de que siempre están disponibles todos los datos, de otro modo el algoritmo falla. Para hacerte una idea de porque funciona. piensa al listBox como una lista. Y cada elemento ocupa una posición. Código:
0 - DNI 1 - Nombre 2 - Apellido 3 - Teléfono 4 - DNI 5 - Nombre 6 - Apellido 7 - Teléfono Es por ello que al encontrar la posición del DNI, la copio a la posición [1,1] del stringGrid, luego, exploro las siguientes 3 posiciones y las añado a la posición [i,1]. ¿Porqué sacamos siempre el valor del Indice? Pues porque si te fijas, al final de cada bucle FOR incremento (la función inc()) la variable indice en 1. Y esto hace que con cada pasada, se obtenga el siguiente elemento del ListBox. Inc(indice) es análogo a indice := indice + 1; inc(indice, 2) es análogo a indice := indice + 2; Analiza el código que te pasee y ve de que manera se adapta a lo que buscas. Muchas de las cosas que preguntas tienen tanto de lógica como del uso del uso de las propiedades de los objetos que empleas. No temas pulsar F1 al seleccionar un objeto. Por ejemplo, si no sabes como usar el StringGrid, arrastra uno al form, seleccionalo y presiona F1. Obtendrás la ayuda. El inglés no es pretexto, habiendo traductores on-line como off-line. Saludos, |
|
#2
|
||||
|
||||
|
Tio, muchas gracias, me entere fenomenal. Ahora viene la segunda parte... ver si yo puedo. Ahora te aviso.
|
|
#3
|
||||
|
||||
|
Primer problema que me surge:
"Estoy intentando que el programa lea un archivo .txt previamente creado con los datos puestos: nombre apellido nombre apellido (esto es una prueba) Bueno el problema es que cuando le doy a "recuperar" pues me lo lee y sale en el LISTBOX pero con un espacio entre nombre y apellido... así: pepe //aqui hay un espacio que no había gomez // aquí tambien juan // aqui tambien lopez El codigo es: Código Delphi [-]var f:textfile; n:string; begin assignfile(f,'nombres.txt'); reset(f); while not eof(f) do begin readln(f,n); edit1.Text:=n; button1.Click; //añadir ¿en mis apuntes sale ke tengo que poner esto... pq? button2.Click; //lo que hace es volcar end; closefile(f); end; end. |
|
#4
|
||||
|
||||
|
kbaby, el TListBox cuenta con los métodos LoadFromFile y SaveToFile que hace todo el trabajo más fácil.
LoadFromFile abre un archivo y lo muestra. SaveToFile lo guarda. El archivo que se genera es como aparece en el ListBox. Cada texto en un "renglón". Es decir que si en un ListBox tienes esto (cada uno en una linea): Código:
Hola como estas kbaby yo aqui un poco adivinando lo que hace ese button1.click y también desorientado con el button2.click El problema con ese código puede deberse al Readln() ya que eso hace que se pase al siguiente "renglón". El porque en tus apuntes invocas a un Button1.Click y luego a un Button2.Click lo desconozco... es cosa de tus apuntes... y pues... no estoy allí para ver que es lo dicen. ![]() Si nos aportaras más datos podría saber el modo de ayudarte. Saludos, |
|
#5
|
||||
|
||||
|
Cita:
Problema solucionado, fue simplemente ir probando, el código quedaría así:
Lo que hace el boton añadir es irse esto: Mete la 1º linea del .txt en el edit1.text, luego la 2º linea en el edit2.text y así hasta las cuatro lineas y luego las añade al listbox. Esto lo repite hasta llegar al final. Luego lo vuelca en la tabla. He quitado lo de volcarlo porqueno me interesa volcar TODO. Duda: ¿Cabe la posibilidad de recuperar la información del .TXT en el LISTBOX sin tener que hacerlo de mi manera tan "cutre"?. Última edición por kbaby fecha: 26-05-2008 a las 19:29:24. |
|
#6
|
||||
|
||||
|
Primer problema que me surge:
"Estoy intentando que el programa lea un archivo .txt previamente creado con los datos puestos: nombre apellido nombre apellido (esto es una prueba) Bueno el problema es que cuando le doy a "recuperar" pues me lo lee y sale en el LISTBOX pero con un espacio entre nombre y apellido... así: pepe //aqui hay un espacio que no había gomez // aquí tambien juan // aqui tambien lopez El codigo es:
|
|
#7
|
||||
|
||||
|
¿Por qué utilizas el Inc(indice)?
Es lo único que no me ha quedado claro. Yo pulso f1, y lo leo, pero no veo como se adapta lo que a mí me han enseñando y no puedo llevar algo que no haya yo enseñado. Ahora si yo el " Inc(indice)" lo adapto a lo que me han enseñado pues sí. Espero me comprendas. |
|
#8
|
||||
|
||||
|
Cita:
cuando uno hace:
Lo que consigues es incrementar tu_variable en 1. Al hacer:
Lo que consigues es incrementar tu variable en 5. De cualquier manera, puedes sustituir, como he dicho, a inc() por su equivalente:
¿El porqué uso la variable indice para incrementar? Pues... para ahorrarme otra variable. Si te fijas, la uso inicialmente para localizar la posición de un texto. Y si se dicha posición puedo saber la de los demás. Si el archivo SIEMPRE contendrá TODOS los datos y en dicho ORDEN, con saber la posición del DNI se puede conocer la de los demás datos. Por ejemplo: Nombre ocupa la posición siguiente a indice. Lo que se traduce a Indice + 1. Apellido ocupa la posición siguiente a Nombre. Traducido: indice + 2. Telefono ocupa la posición siguiente a Apellido. Traducido: indice + 3. Con cada paso del bucle FOR, no sólo me desplazo sobre la fila del StringGrid, sino también sobre el indice del ListBox. ¿Me vas entendiendo? Saludos, |
|
#9
|
||||
|
||||
|
Entendido
Gracias profe ![]() |
|
#10
|
||||
|
||||
|
Aqui volviii
Con dudas bueno en realidad son solo dos dudas.1º Duda: Como acordamos, el codigo que funciona para buscar a los usuarios por DNI es el siguiente:
Pero funciona eso porque los datos son: 0-DNI 1-NOMBRE 2-APELLIDOS 3-CIUDAD 4-DNI 5-NOMBRE 6-APELLIDOS 7-CIUDAD Entonces, como dijiste, entre el 0 y el 3 existe una relacion. Pero y si yo lo que quiero ahora es ampliar el programa ¿y si busco por los APELLIDOS me salga en la tabla la persona con esos apellidos? Creo, que lo que hay que tocar es: t.Cells[i,1] := l.Items[indice]; Pero como ya te dije, eso de INC no lo entendi bien. Por lo visto, va aumentando de 1 en 1 ¿no? Por eso sale el item 0, luego 1, 2,3... Entonces si yo pongo en el EDIT de la busqueda los APELLIDOS... en la tabla me salen los items 3,4,5,6. ¿Como arreglo eso? Ya estoy indagando xD pero nada.Otra cosa es la siguiente. Yo se volcar el contenido de mi LISTBOX en una TABLA (STRINGRID). AQUI TENEIS UN EJEMPLO: MI TABLA ---------------------------------- |dni1 |nombre1 |apellido1 | ---------------------------------- ---------------------------------- |dni2 |nombre2 |apellido2 | ---------------------------------- ---------------------------------- |dni3 |nombre3 |apellido3 | ---------------------------------- ---------------------------------- |dni4 |nombre4 |apellido4 | ---------------------------------- Y así, con todas las personas de mi listbox. Entonces si al nombre3 (un ejemplo) le cambio el nombre y se llama pepito en vez de juan... y le doy a GUARDAR... (guardar para que se guarden los cambios)... pierdo todas las otras personas y solo se me queda la persona "3" con sus cambios. ¿Por qué? ¿Qué manera usais vosotros para hacer lo que yo intento? Lo siento por ser tan... malo... pesimo.... en mis detalles. gracias. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Ayuda con código. | wofox | Varios | 6 | 11-12-2007 00:16:21 |
| Ayuda con un codigo | JoNieve | C++ Builder | 0 | 21-04-2007 12:27:33 |
| Ayuda con error en codigo :-( | jorgegetafe | Varios | 6 | 07-02-2007 19:29:04 |
| Codigo de Barras.... Ayuda!!!!! | adolfoz | Varios | 14 | 15-11-2006 17:13:55 |
| Ayuda con código de barras | ramiretor | Varios | 0 | 28-06-2003 00:42:58 |
|