![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|
|
#1
|
||||
|
||||
|
Cita:
Lo siento, pero si no aprendes a aportar verdaderamente la información que nos ayude a ayudarte no podemos seguir. La paciencia tiene cierto límite. Yo he estado siendo paciente... pero ha sido dificil sacarte la información para que te pueda asesorar. Cuando uno dice me sale error, ¿que puede ser?... Menos ganas de ayudar me dan. Tu ya conoces como funciona esto... el que aporta detalles recibe soluciones y alternativas, el que no tiene dos opciones: 1. lamentarse 2. Ceder parte de su tiempo en explicar acabadamente su situación Me parece fabuloso que estés dandole a esto de programación. Es admirable porque muchos cuando lo intentan y ven que las cosas no les va se tiran abajo... Tu no te tiras abajo, nos tiras abajo. Posteo y inmediatamente posteas. Analiza primero en frio lo que te he dicho y luego adaptalo a tus necesidades. Por hoy, lo dejamos. Vuelve en frio, y yo tambien. Saludos, |
|
#2
|
||||
|
||||
|
Lo siento por no saber expresarme, pero aquí esta todo. He montado el programa en un pispas puesto que no lo tengo en mi casa sino en el instituto. Así que aqui tienes mas o menos "mi proyecto" que en el instituto esta mucho mejor hecho.
http://rapidshare.com/files/11838241...ATICA.rar.html Bajalo de ahí, y veras el problema al buscar algun item que contenga espacio y el problema al modificar una persona que esta en la tabla. Gracias, más no se que poder ofrecerte. Llevo toda la tarde, toda, toda pero no piyo nada ni lo saco por logica. Eso del I,J no lo comprendi bien, o eso creo. Voy a volver a leerlo. Última edición por kbaby fecha: 28-05-2008 a las 20:58:41. |
|
#3
|
||||
|
||||
Voy a comentarte. Segun ese codigo quiere decir que en el Item de posicion I (no se sabe, es una variable) se va a cambiar por la cadena que hay en la celda [x,y]. Pero ahora viene mi cuestion... siento ser tan pesado pero tengo muy poco tiempo y experiencia y por eso acudo aqui, a pedir ayuda y porque veo que es un sitio util ¿Cómo sabe el programa que vale I? Cuando yo pulse el button que le asigne el codigo, el no sabe que ITEM es... ni que CELDA he modificado. ... Eso es mi problema. Gracias. |
|
#4
|
||||
|
||||
|
kbaby, antes que nada te recuerdo algo que tu habías dicho:
Y esto lo hago no con la finalidad de ser pesado sino de hacerte notar de que muchas veces uno por ponerse a ser original termina descubriendo cosas que están fuera de nuestra comprensión y atentan con lo que estuvimos haciendo. El que nos digas a nosotros que quieres hacer esto, hacer esto otro... y a riesgo de que nos saltes diciendo algo parecido a esto: Cita:
Pusiste a disposición tu código fuente, lo estuve viendo... En cuanto a estética deja que desear, pero eso no es problema. En cuanto a código... también deja que desear. Puede mejorarse. Y es aquí donde voy a hacer una pausa para darte algunos consejos: 1. Declaración de variables. Debes declarar a tus variablesy controles de mejor manera. Un "l", un "t" no es adecuado. Termina confundiendo más. A veces es mejor tener un StringGrid1, que un t. 2. Mucho código puede reducirse y compartirse entre los controles. Aqui debo volver hacia lo que te dije al comienzo de este post: Al no saber hasta donde llegan tus conocimientos no sabría decirte y preguntarte el porqué no haces usos de procedimientos y funciones. Buena parte del código se ahorra teniendo funciones y procedimientos que hagan las tareas comunes e invocandolas cuando sea conveniente. Cita:
Debido a ello es que cuando deseamos hacer el paso inverso no sabemos a quien atribuírsele. ¿Como se soluciona esto? Lo he dicho en el post anterior: Una alternativa es que al volcar los datos, usar la primera columna para hacer referencia al índice en cuestión. De modo que con leer dicha celda sabemos a que índice o posición (ya sea del Apellido, DNI, o el que fuera) podemos aplicar el paso inverso valiendonos de un corrimiento por arriba y debajo de dicho indice. No interesa si modificaste uno o varios campos. El proceso funciona igual. ¿Que importa si antes un campo tiene PEPE y lo sustituímos por PEPE? ¿Afectó en algo? Si por cuestiones de "perfomance" deseas evitar recorrer todos los elementos, deberías llevar un registro de cuales son las celdas que han sido editadas. Y esto implicaría más código... Y más código, sobre todo para ti y la funcionalidad que buscas, es más de lo que estarías dispuesto a hacer. Nuevamente volvemos a lo que te he dicho al inicio: ¿Cuanto sabes? ¿Que puedes usar? ¿Que no puedes usar? ¿Si te ofresco una solución, cuál es la probabilidad de que entiendas de lo que hablo? Digo... si me baso en lo que pasó al explicarte sobre el uso de la función inc()... ¿que puedo esperar si te ofrezco un algoritmo que lleve registro de las celdas editadas y luego recorrerlas a fin de aplicar los cambios adecuados? Un algoritmo como ese implica de una u otra forma el uso de una estructura de datos dinámica, ya sea que termine usando un array dinámico, un TList, un lo que sea.... lo más seguro es que termines diciendome nuevamente que no entiendes y/o que no viste nada de eso y no puedes usarlo. kbaby, te he dicho que tus problemas están en la lógica. Y ahora lo veo también por la prisa que tienes de hacer tu "tarea". Con respecto al error que dices, no me arroja error. El algoritmo que tienes funciona tanto para un apellido simple como para uno compuesto. Da lo mismo que pongas MARTINEZ que MARTINEZ VELASQUEZ. Si en el TListBox existe, lo encontrará. Lo acabo de probar, no alteré el código... FUNCIONA. Habría que ver que es lo que realmente haz puesto tu, a lo mejor fue un despiste "de dedo". kbaby, ¿Recuerdas como empezaste en el Club? Varios foristas salieron a tu ayuda y tu lograste dar con la solución. ¿Porqué no haces nuevamente eso? Analiza el problema, deja de pensar en TListBox, en TStringGrid.... borra de tu mente el código y piensa objetivamente sobre la raiz del problema. Olvidate de la PC, agarra un lapiz, y papel. Y describe tu problema. Todo en forma textual... ahora piensa un poco y redacta en la forma una solución. ¿Listo? Luego a cada oración, párrafo o idea buscale un sentido en programación. Ese ejercicio te puede ayudar a comprender que los mayores problemas no están en el lenguaje sino en tu cabeza. No es mi intensión llamarte tonto, ni nada de eso. Sino que lo que nos detiene a muchos aquí es que se meten en un código buscando que la idea se adapte a él, cuando es la inversa lo que debe suceder. Hace tiempo te comunicaste conmigo pidiendome una opinión sobre que carrera te convenía. En vista a que quiere meterte en informática, y tal parece por lo que me comentaste, te gusta mucho esto de la programación. No es por asustarte ¿pero sabes los golpes que nos damos a diario muchos aqui? No pretendo decir que esto no es para cualquiera... porque no es ni lo uno ni lo otro. Hazme caso kbaby... Piensa en frio. imagina a las cosas de manera más simple, buscale a los problemas una representación similar a algo real, algo que ya hayas resuelto. Incrementa tu habilidad de abstracción. ¿Me creerías si te digo que me imagino al TStringGrid como varias pilas de platos una al lado de la otra? ¿Me creerías si te digo que le encuentro al procedo del volcado inverso una analogía al proceso de desapilar las pilas de platos? Si... tal vez te parezca que me he estado dando unos cuantos golpes y que he salido con unos extraños personajes de los años 70 que profetizaban la frase "paz y amor, viejo". Pero lo cierto es que prefiero no matarme buscando adaptar la idea al código, sino que la idea me de el código. Lenguajes hay muchos, y cada uno te puede hacer más o menos fácil la vida. Y no tiene sentido que te aprendas el lenguaje. Aqui muchos preferimos Delphi, a mi me gusta... pero ¿cuanto se de él? ¿Un 20%? ?Un 50%? ¡Pues que importa! si lo que realmente importa es resolver el problema.... Piensa en frio. Tal vez estas palabras te sean rudas... No es mi intención que así sea. Noto en ti muchas ganas de aprender y disfrutar de esto. Y ando buscando el modo de demostrarte, y creo que lo que ha estado sucediendo en este hilo lo está demostrando en parte, de que las cosas no se hacen de un día a otro. A su tiempo. Analiza en frio el problema, y mi propuesta. ¿Existe otra manera? Muy posiblemente. Me extraña que otros no se hayan animado a ofrecerte ayuda. Esto si será rudo: No te voy a resolver el código, porque considero que allí no está el problema. Creo que hay un bosque que te tapa el arbol ¿O se trata de que un Arbol te tapa el bosque? ![]() Saludos, |
|
#5
|
||||
|
||||
|
Cita:
Si aún no encuentras esa respuesta convencional y primitiva cómo es que la automatizarás ? No puedes hacer más fácil algo que no sabes cómo se hace de ninguna manera... El consejo que te da Delphius te permitirá darte cuenta de que el problema no es tan difícil como lo crees, simplemente te falta sentarte y realmente analizarlo... Saludos ![]() |
|
#6
|
||||
|
||||
|
Bueno, yo he leido los dos post y pienso que entiendes como si yo no hiciera eso. Claro que lo hago, pero llega un momento que lo que yo he aprendido me pone una barrera que no me deja acceder a otras cosas. Yo solo puedo hacer cosas limitadas. Eso sí, nos dejaron indagar en libros, internet, foros, para aprender cosas nuevas e implantarlas en el proyecto final. Por eso estoy aquí, preguntando cosas de las que NUNCA he odio hablar.
Con respecto a la estetica... fue un programa que hice en 10 o 15 minutos rapidamente para que veas como lo tengo organizado en el aula de informatica... pero allí uso 3 formularios, imagenes, paneles.... En mi casa lo que hago es pensar en un codigo para luego, ponerlo allí, pues solo tengo 1 hora de informatica y alli no puedo pensarlo. En mi casa lo pienso y lo pruebo y me lo apunto en mi libreta de delphi. Yo pienso que hago todo lo posible por aprender, no he llegado al extremo de imaginarme esas cosas que me dijiste el final, pero si a dibujarlo e intentar solucionar las cosas "dificiles" con procedimientos faciles... Lo de "t" a la <rejilla> y lo de l al <listbox> tienen ese nombre porque así me enseño mi profesor. Nos dijo que para ser mas rapidos, usaramos variables cortas y facil de recordar... en ningun momento lo eleji yo. Hoy estuve en informatica, ya me queda muy poco por acabar. Os cuento de lo que hace mi proyecto ^^ - Añade a personas (al listbox) - Las modifica (aunque al modificar una, se borra todas del .txt). - Puedes bucar a personas por DNI, apellidos, telefono (gracias Delphius). - Puedes ver el estado del hotel (% de habitaciones ocupado, gente dentro...) - Mi super boton close; (para salir :P) ¿Qué me queda? - Arreglar lo de modificar a las personas y que se guarde. - Poder buscar y ver en el StrinGrid1 (lo dije bien ehh) todas las personas que sus apellidos sean MARTINEZ LOPEZ y no solo, la primera. Eso es todo. Espero que no pienses que soy un vago que lo quiere todo hecho. Me he leido la caraocultadedelphi, el libro que me compre en la feria del libro por 1€ (si ese), he consultado en personas que saben (sin encontrar ayuda por parte de ellas), he venido al foro y entré, desde el primer miomento que di programacion. Yo tengo aun la idea en mi mente de poder ser informatico, alomejor programando no valgo (cosa que no me preocupa, intentare conseguir la meta) pero dentro de la informatica hay muchisimos campos. Gracias. PD: Lo de apellidos compuesto ya se porque me tiro error, por el error de "dedo". Gracias Última edición por kbaby fecha: 30-05-2008 a las 17:48:49. |
|
#7
|
||||
|
||||
|
Pues aquí, desde el último post, estaba indagando un codigo para borrar del LISTBOX a una persona que tengo volcada en un StringGrid. Pues el código que se me ocurrio fue este:
Pero el problema es el siguiente si mi listbox es: 0-dni 1-nombre 2-apellidos 3-telefono 4-(y asi, sucesivamente). Lo que hara es borrar el dni y entonces "nombre" pasara a la posicion "0" y así todos bajan una. Por lo siguiente, al repetir el FOR, borrará a+1 "posicion 2" ... el telefono de la persona... Bueno voy a seguir intentando sacar codigo (te estoy haciendo caso, con papel y lapiz). --------------------Minutos despues.......--------------------------- Aquí estoy, se me iluminó la bombilla y... tachán! Mirad que código mas sencillo para borrar a una persona (dni,nombre,apellido,ciudad) sin borrar las otras.
Última edición por kbaby fecha: 30-05-2008 a las 17:59:03. |
|
#8
|
||||||
|
||||||
|
Cita:
Con respecto a lo que te había comentado antes, si te lo digo es porque al intentar explicarte el uso de inc() tu mismo dijiste que no puedes poner nada que no haya sido visto. Y si no puedo estar seguro de que has visto o no haz visto... ¿de que modo te puedo ser de ayuda? Ahora, si estás aqui con la finalidad de ver cosas nuevas y mejorar el código. Entonces, aquel comentario que mi hiciste sobre de que no puedes poner nada visto está de más y tus preguntas debieron hacerse de otro modo para que nosotros si te pudieramos ofrecer alternativas. Por el modo en que redactabas tus dudas se vee reflejado el deseo de "apagar un incendio" y no de ver buscar alternativas. Si para el trabajo final puedes poner otras cosas y sustituir algunos códigos te sugeriría que te evitaras ese código para abrir y guardar en el archivo. Es mucho más cómodo el método LoadFromFile y SaveToFile del cual disponen tanto el TStringGrid como como el TListBox y te aseguras de que lo está "escrito" en pantalla se guardará. También podría ser útil el uso de funciones y procedimientos. Mucho código del cual empleas puede concentrarse en unas pocas funciones y/o procedimientos y con ello evitar repitir código. En ocasiones tener un:
Es mucho más conveniente que estar implementando en varios controles el mismo o similar código. En este ejemplo, BuscarPaciente es una función que recibe en el primer parámetro el texto a buscar, el segundo parámetro es una constante definida y sirve para establecer el criterio de búsqueda. Si Se diseña un algoritmo que busque por cualquier criterio, puede usarse en distintas partes y sin ningún cambio, sólo basta con suministrar el criterio adecuado. El algoritmo que te yo te di como ejemplo puede fácilmente ser adaptado a esta necesidad con unos pocos cambios. [quote=kbaby;290150] Con respecto a la estetica... fue un programa que hice en 10 o 15 minutos rapidamente para que veas como lo tengo organizado en el aula de informatica... pero allí uso 3 formularios, imagenes, paneles.... En mi casa lo que hago es pensar en un codigo para luego, ponerlo allí, pues solo tengo 1 hora de informatica y alli no puedo pensarlo. En mi casa lo pienso y lo pruebo y me lo apunto en mi libreta de delphi. [/delphi] El comentario que te hice sobre estética no fue con la intención de atacar. Sino un comentario que debe ser tomado con ligereza. Si lees bien, he dicho: "pero ese no es el problema". Y no lo es porque yo pongo atención a la lógica y no a la pantalla... Yo dejo la interfaz para el último, y si tengo que ir haciendola, la hago burdamente. Sólo lo hice para recordarte de que al final debes mejorarla. El problema de la gran mayoría de los sistemas es de lógica y no de interfaz. Por eso a mi poco me importa como se vea... fue un simple recordatorio para cuando termines. Cita:
Yo no me creo genio, ni un experto. Esta profesión, como cualquier otra requiere de constancia. Y las cosas no salen de un día a otro. De hecho, hay un algoritmo que yo todavía lo tengo trabado (pero gracias a Dios, no es vital) y el compañero Seoane me lo dió vueltas en una patada. Hay cosas que nos salen, otras que no. Y con el tiempo comprenderás que lo que cuesta ahora en un futuro lo verás como (perdón por la palabra) una estupidez. Yo te he recalcado algo: analizalo en frio. Y es así porque he notado que en el momento en que posteabas te quedabas esperando a que posteara. Y ni bien yo posteaba no pasaban muchos minutos y ya había un post tuyo diciendo que tenías problemas para entender mis propuestas. Algunas veces las soluciones no se hallan en minutos ni en días. Aprenderás esta lección cuando estés estudiando en la universidad y/o salgas a la calle. No desesperes, porque es lo último que debes perder. Cita:
kbaby, los extremos son peligrosos: Muchas son muchas, pocas son pocas. ¿Te gusta leer esto?:
¿Y esto otro?:
En el primero tenemos un caso en que hay demasiado información. En el segundo en el que hay poca. Mientras que el primer caso se sobre entiende que se trata de un Combo, en el segundo, No sabemos que es a, y el porqué existe lo que pareciera ser una Propiedad llamada Expr que vaya a saber que hace. Lamento decirlo pero tu profesor tiene razón parcialmente. Cita:
Creo que te he dado buenas pistas. ¿Las repasamos desde tu punto de vista como la entiendes? Yo entiendo el problema... hace falta que aquí comprendamos tu visión de la propuesta. Te propongo que redactes lo que entiendes de mi propuesta. Para el caso de la búsqueda de todos los pacientes con determinado apellido, el algoritmo que tienes en volcar te debe ser de orientación. De hecho haste esta pregunta ¿Que diferencia existe entre volcar toda la información de un TListBox de volcar sólo la que coincide con cierto criterio? Una pista más: Por "cada item" hacer: 1. ¿Es igual a criterio?. 1.1. SI: entonces agreamos sus datos a la rejilla 1.2. NO: entonces no hacemos nada. Lo de guardar los datos es la inversa de volcar. Pasar lo que haya en el TStringGrid hacia el TListBox. He aquí que para hacerlo debemos contemplar una situación que ya he explicado y me gustaría "oir" que es lo que entiendes y no entiendes de mi propuesta. ¿Cómo te lo estabas imaginando? Cita:
Es bueno que leas libros, son de ayuda. Pero en los libros es posible que no encuentres la receta para preparar el algoritmo para buscar más de un paciente. Esto, lamentablemente, se aprende por ensayo y error. Yo me vivo dando golpes con código kbaby... por algo he dicho y sigo sosteniendo: es una actividad mental, muy humana. Y al ser humanos, nos vemos movidos por miles de cosas. Me alegro que sientas la convicción y ganas de estudiar sobre informática. No digo que seas mal programador. Nunca he dicho eso... Sólo te digo estas cosas para que te prepares, mentalmente, para cuando tengas dificultades. No es agradable darse golpes... hay que aprender a vivir con ellos. Y no sólo en la vida profesional, sino en lo personal, en lo anímico, en lo sentimental, en lo existencial. Muy cierto que la informática es amplia, y como te había comentado por MP: debes informarte y asesorarte bien sobre que del amplio abanico de posibilidades deseas enfocarte. Yo no prefiero darte código kbaby... y me parece que es la decisión adecuada. Porque es necesario que logres ver donde está el problema... el porque te cuesta hallar el paso inverso (StringGrid a TListBox). Creeme que es lo mejor para ti, porque no sólo te sentirás mejor por encontrar tu mismo hecho el algoritmo sino porque comprenderás al problema y lograrás formular una solución. Y creeme que te digo que la solución está en tus narices. Cuando la encuentres dirás, posiblemente algo como esto: "Pero que g... que soy. Si había sido una tontera". ¿Que diferencia a un TListBox de un TStringGrid? Pues yo veo a un TStringGrid como una varios TListBox horizontales, uno debajo del otro. ListBox1: [0][1][2][3][4] ListBox2: [0][1][2][3][4] .... ListBoxN: [0][1][2][3][4] Puede que eso te sirva de ayuda. Cita:
Puede que esa metida de dedo sea por impaciencia... Hazme caso... redacta la comprensión que tienes de mis propuestas y vemos ¿Si? No te sientas atacado. Si asi te has sentido, lo lamento, disculpa. Lo que quiero es hacerte ver que esto es mucho más mental que lo que algunos piensan. Y si deseas irte por las ingenierías, con más razón. Yo diría que repases por las dudas un poco de matemática, física y química. ¿Porqué crees que en los primeros años de la carrera verás más números que a la PC? ¿Sólo para hacer a las carreras más duras? ¿Porque son relleno? Cada materia tiene su propósito, no sólo forma parte de la cultura general. kbaby, te deseo que tengas triunfos en la carrera. No cometas el mismo error que yo: no desesperes por unas cuantas LDC (lineas de código). Saludos, Última edición por Delphius fecha: 30-05-2008 a las 19:38:27. Razón: modificar etiqueta quote mal colocada |
![]() |
| 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 |
|