PDA

Ver la Versión Completa : Obtener la primera palabra en una cadena de texto


Jere_84
18-06-2012, 22:03:33
Hola Club!, Alguien sabe de alguna función en Delphi 2010 o anteriores, que devuelva la primera palabra de una cadena de texto?.

Por ejemplo:

Función( 'PROGRAMANDO.CON.DELPHI' ) devuelve 'PROGRAMANDO'



Slds.

Casimiro Notevi
18-06-2012, 22:04:48
Sólo has de copiar desde el principio hasta el primer espacio :)

EDITO: Como veo que Jere_84 ha "hecho trampas" cambiando el espacio entre palabras por un punto, entonces cambio mi respuesta:

Sólo has de copiar desde el principio hasta el primer punto :)

AzidRain
18-06-2012, 22:17:21
Se ha perdido el arte de pensar en algoritmos para luego pasarlos a código...snif..con esto del copy-paste ya casi nadie se da a la tarea de siquiera hacer un bendito diagrama, analizarlo e intentar que funcione. La programación es el método cienítifico condensado, pero pocos quieren experimentar y casi todos quieren remitirser directamente a los resultados.

Volviendo a la pregunta, la el buen Casimiro puso la respuesta. A pensarle un poquito mi querido Jere que de eso casí todos los del club vivimos.

Jere_84
18-06-2012, 22:31:36
Se ha perdido el arte de pensar en algoritmos para luego pasarlos a código...snif..con esto del copy-paste ya casi nadie se da a la tarea de siquiera hacer un bendito diagrama, analizarlo e intentar que funcione. La programación es el método cienítifico condensado, pero pocos quieren experimentar y casi todos quieren remitirser directamente a los resultados.

Volviendo a la pregunta, la el buen Casimiro puso la respuesta. A pensarle un poquito mi querido Jere que de eso casí todos los del club vivimos.

vos sos el dueño del club?

Delphius
18-06-2012, 22:33:24
Apuesto, sin dudar, a que esta pregunta está relacionada con esto (http://clubdelphi.com/foros/showthread.php?t=79222) también.
¿Que vas a preguntar después? ¿Cómo concatenar strings? ¿Cómo capitalizar?

¿Tu idea es pasearte por toda la SysUtils y/o StrUtils por encima haciendo una pregunta para cada uno de los procedimientos y funciones para los cientos e inimaginables usos sobre manipulación de strings? ¿Tan pero tan complicado es empezar a explorar la unidad que ya te han recomendado (y la que yo he indicado ahora) y buscar si de casualidad no habrá algo o pensarlo un poquito siquiera como te ha dado la pista Casimiro? ¿O directamente asumiste que esa unidad acaba en lo que han dicho en el otro hilo y para esto hace falta otra cosa?

Me parece que es mejor atacar el problema desde algo más grande... Si sumamos ese hilo más este y vaya a saber que otros más, quizá podríamos descifrar a lo que efectivamente quieres llegar. Porque a como lo huelo, estás tirando piezas sueltas de un rompecabezas mayor... ¿Porqué no mejor no presentas al rompecabezas? Porque sigo pensando que te estás rompiendo la cabeza muy divinamente al puro botón.

Jere_84
18-06-2012, 22:38:34
Apuesto, sin dudar, a que esta pregunta está relacionada con esto (http://clubdelphi.com/foros/showthread.php?t=79222) también.
¿Que vas a preguntar después? ¿Cómo concatenar strings? ¿Cómo capitalizar?

¿Tu idea es pasearte por toda la SysUtils y/o StrUtils por encima haciendo una pregunta para cada uno de los procedimientos y funciones para los cientos e inimaginables usos sobre manipulación de strings? ¿Tan pero tan complicado es empezar a explorar la unidad que ya te han recomendado (y la que yo he indicado ahora) y buscar si de casualidad no habrá algo o pensarlo un poquito siquiera como te ha dado la pista Casimiro? ¿O directamente asumiste que esa unidad acaba en lo que han dicho en el otro hilo y para esto hace falta otra cosa?

Me parece que es mejor atacar el problema desde algo más grande... Si sumamos ese hilo más este y vaya a saber que otros más, quizá podríamos descifrar a lo que efectivamente quieres llegar. Porque a como lo huelo, estás tirando piezas sueltas de un rompecabezas mayor... ¿Porqué no mejor no presentas al rompecabezas? Porque sigo pensando que te estás rompiendo la cabeza muy divinamente al puro botón.

No entiendo cual es la molestia? si no tenes ganas de responder no lo haces y punto.

Delphius
18-06-2012, 22:39:57
vos sos el dueño del club?
No, pero ha señalado justamente una debilidad de un análisis... o que se ha perdido de vista algo demasiado básico y que te estás perdiendo en un vaso de agua.
Para alguien que se dice tener 28 años y ser Analista de Sistemas que pregunte algo elemental como copiar una subcadena de otra ya es una alarma de que algo huele mal.

Es una realidad: el bosque no te está dejando ver el árbol.

¿Tan difícil es emplear por ejemplo Pos() para obtener la posición del punto, para luego hacer un Copy() desde la posición 1 hasta dicho valor?

Saludos,

Casimiro Notevi
18-06-2012, 22:43:00
vos sos el dueño del club?

AzidRain simplemente ha dado una opinión muy cierta, tus preguntas, si fueran de matemáticas, serían del tipo:
1,3,5,9 ¿cómo puedo saber el número que falta?
1+X=3 ¿cuánto vale X?

Con esto no quiero decir que tengas que saber, pero lo que demuestra es que tienes poco interés en esforzarte en aprender, nada más.
Principalmente porque tus preguntas son totalmente simples y elementales, no tienen ninguna complejidad, deberías de leer un simple libro de programación, de metodología de programación, no hace falta que sea de delphi.

Es sólo un consejo por si estás interesado y te gusta este mundo de la programación, nada más. Porque realmente este es un mundo en el que hay que trabajar mucho, estudiar mucho, echar muchas horas, días, noches, sábados y domingos, nunca estás realmente preparado, siempre tienes miles de cosas nuevas para aprender y nunca acabas, es muy duro, por muy bonito que sea y por mucho que nos guste. Eso lo compensa, sobre todo cuando haces un sistema/función/módulo/software del que estás orgulloso de ser su autor. Y si además te lo pagan bien, ya ni te cuento :)

Jere_84
18-06-2012, 22:43:13
No, pero ha señalado justamente una debilidad de un análisis... o que se ha perdido de vista algo demasiado básico y que te estás perdiendo en un vaso de agua.
Para alguien que se dice tener 28 años y ser Analista de Sistemas que pregunte algo elemental como copiar una subcadena de otra ya es una alarma de que algo huele mal.

Es una realidad: el bosque no te está dejando ver el árbol.

¿Tan difícil es emplear por ejemplo Pos() para obtener la posición del punto, para luego hacer un Copy() desde la posición 1 hasta dicho valor?

Saludos,

Vos sos el que compara las cadenas con '='?
Cuanto tiempo llevas programando pichon?
gracias.
Slds.

Casimiro Notevi
18-06-2012, 22:45:10
Vos sos el que compara las cadenas con '='?
Sí, las cadenas se pueden comparar así.

Jere_84
18-06-2012, 22:51:31
Sí, las cadenas se pueden comparar así.

No es demasiado basico para lo dice ser el. no quiero peliar pero yo eh visto muchas preguntas basicas en los post. no entiendo cual es maldito problema.

Delphius
18-06-2012, 22:52:46
No entiendo cual es la molestia? si no tenes ganas de responder no lo haces y punto.

Vos sos el que compara las cadenas con '='?
Cuanto tiempo llevas programando pichon?
gracias.
Slds.
En el anterior hilo yo te comenté que deberías haberte explicado bien a lo que buscas con comparar. Cada función y/o procedimiento disponible en SysUtils para comparaciones de cadenas tiene su propósito. Si tu no te tomas la molestia de explicar cual es tu objetivo concreto es de esperar respuestas tan airosas como tu pregunta.

A veces es más simple y directo hacer una simple =, para ciertas cosas se requiere del algo más elaborado... en fin, dije la verdad: NO TE EXPLICAS.

Lo que yo lleve programando a vos no te interesa, pero a mi me parece por demás curioso que un Analista de Sistemas de 28 pregunte como extraer una subcadena de otra. Yo cometo errores también ¡y de estos tipos!, y no todo me lo se. Pero en cuanto uno llega a estas preguntas elementales y existenciales, de temas que se suele ver y dar como ejercicios en los primeros días de cátedra, hay que hacer un STOP y decirse "¿Pero que es lo que estoy por preguntar? Espera... a ver, dejame ver que es lo que estoy por hacer y que es lo que realmente quiero".

Si tu no comprendes a lo que apunto, piensa de nuevo.

Saludos,

ecfisa
18-06-2012, 22:53:41
Hola.

Como dicen Delphius y Casimiro, las variables de cadenas o constantes literales se pueden comparar directamente.


var
a,b: string;
begin
if a = b then ...
if a > b then ...
if a < 'casa' then ...
if 'perro' <> 'gato' then ...


Saludos.

Casimiro Notevi
18-06-2012, 22:57:08
No es demasiado basico para lo dice ser el. no quiero peliar pero yo eh visto muchas preguntas basicas en los post. no entiendo cual es maldito problema.

El único problema es que te has exaltado cuando AzidRain ha comentado "nostálgicamente" tiempos pasados de programadores que se esforzaban, y que no parece ser tu caso, pero no le veo ninguna mala intención, ya que como tú dices, hay muchas personas que preguntan cosas básicas.
Aunque estas preguntas que has hecho últimas son básicas, básicas.
Pero, repito, no había ninguna mala intención en el comentario.

Así que, por favor, que haya paz. Gracias :)

Delphius
18-06-2012, 23:01:51
No es demasiado basico para lo dice ser el. no quiero peliar pero yo eh visto muchas preguntas basicas en los post. no entiendo cual es maldito problema.
El problema no pasa por que sea más complejo o básico, o porque la pregunta esté mal. Puedes preguntar... incluso cuando es 2 + 2.

El punto es que dado las condiciones que se han dado en este pregunta y en el hilo anterior vemos que por debajo de estas preguntas, que evidentemente son de temas relacionados, hay un rompecabezas por descubrir.
A veces es mejor proponer acatar al rompecabezas en su conjunto y no por piezas.

Es una sugerencia que se te está dando, para que lo analices y veas si no será que para ciertas cosas te estarás complicando y estás perdiendo el objetivo real. Y no es demasiado bueno, para alguien que se supone tener cierta experiencia, verse en estas preguntas. Porque estoy seguro que a Casimiro, Ecfisa, a ti ni a mi nos gustaría decir "che... me parece que la presión te está jugando en contra. Vamos, tu tienes la respuesta... sabemos que la tienes. Despierta"

Por eso te digo: Despierta ;)

Saludos,

Jere_84
18-06-2012, 23:03:47
En el anterior hilo yo te comenté que deberías haberte explicado bien a lo que buscas con comparar. Cada función y/o procedimiento disponible en SysUtils para comparaciones de cadenas tiene su propósito. Si tu no te tomas la molestia de explicar cual es tu objetivo concreto es de esperar respuestas tan airosas como tu pregunta.

A veces es más simple y directo hacer una simple =, para ciertas cosas se requiere del algo más elaborado... en fin, dije la verdad: NO TE EXPLICAS.

Lo que yo lleve programando a vos no te interesa, pero a mi me parece por demás curioso que un Analista de Sistemas de 28 pregunte como extraer una subcadena de otra. Yo cometo errores también ¡y de estos tipos!, y no todo me lo se. Pero en cuanto uno llega a estas preguntas elementales y existenciales, de temas que se suele ver y dar como ejercicios en los primeros días de cátedra, hay que hacer un STOP y decirse "¿Pero que es lo que estoy por preguntar? Espera... a ver, dejame ver que es lo que estoy por hacer y que es lo que realmente quiero".

Si tu no comprendes a lo que apunto, piensa de nuevo.

Saludos,

A mi me parecio muy basico comparar dos cadenas dentro de una función de la forma que vos me aconsejaste por eso ni te respondí. No se ademas vos también tenes 28 años y no se que tiene que ver la edad en todo esto? Que pasaría si te dijera que hace poco conocí Delphi y que en mi cátedra no utilice este lenguaje? Me parecio un poco chocante tu forma salteño boludo

ecfisa
18-06-2012, 23:15:42
Hola Jere_84.

Primeramente y por favor, te pido que moderes tu forma de expresarte, los insultos hacia otros miembros no son tolerados en Club Delphi.

Ahora siguiendo con la temática del primer mensaje me gustaría destacar el mensaje número #7, que por ahí pasó desapercibido entre tantos, pero es donde está la respuesta más sencilla a tu consulta.

Con la función Pos que devuelve la posición de la subcadena que buscamos en otra y la función Copy que nos permite extraer un numero de caracteres a partir de un índice, creo que ya tenes la solución.

Saludos.

Delphius
18-06-2012, 23:26:24
A mi me parecio muy basico comparar dos cadenas dentro de una función de la forma que vos me aconsejaste por eso ni te respondí.
Si te pareció básico y te quedaba alguna duda o algo curioso que alguien te hubiera sugerido comparar así dos strings lo hubieras mencionado y se te daba una respuesta sobre dicho punto.

Y si pedía explicaciones de a que te referías por comparar, es porque muy posiblemente tu por comparar buscabas algo más que un simple = y era necesario hacerte notar que deberías explicar que es lo que necesitas realmente.


No se ademas vos también tenes 28 años y no se que tiene que ver la edad en todo esto? Que pasaría si te dijera que hace poco conocí Delphi y que en mi cátedra no utilice este lenguaje? Me parecio un poco chocante tu forma salteño boludo
Claro que tiene que ver... porque tu y yo ya no somos dos chiquitos para estar dudando de esto. Se supone que ya lo tenemos bien aceitado. Y el razonamiento y la lógica que desarrollamos para aprender los fundamentos es independiente del lenguaje.
No interesa si eres nuevo en el lenguaje, una de las primeras cosas que uno hace, o debiera hacer, es familiarizarse con las instrucciones, semántica, operadores y estructuras básicas... cosas justamente sobre manejo de strings es uno de esos temas.

Cuando tu pides ayuda sobre funciones para operar en un strings y viendo tu historial de hilos, que eres una persona que es profesional (o a punto de serlo) entonces... alarma: algo no cuadra. Y pensamos a ver, quizá sea algo más profundo que, para este hilo, un Pos() y un Copy() y es necesario descubrir la esencia del problema.

Ahora veo que la esencia del problema es tu desconocimiento del lenguaje, eso es fundamental para encauzar de la mejor forma las preguntas y las respuestas. Si te lo he dicho: Éxplicate y brinda información sobre tu caso.

Lo de salteño boludo estuvo de más... Cordobés negro insolente. Si tu me insultas, yo te insulto.

Saludos,

Casimiro Notevi
18-06-2012, 23:31:06
Bueno, un sólo insulto más, sea de quien sea, y se cierra el hilo y se amonesta al que lo haga.

Así que, por favor, cuenten hasta diez... mil y... aquí paz, gracias :)

Casimiro Notevi
18-06-2012, 23:41:47
Y volviendo al tema del hilo, esta web: http://www.delphibasics.co.uk/
(http://www.delphibasics.co.uk/)A mí me sirve mucho de referencia cuando tengo que consultar cualquier función o busco ayuda sobre cualquier tema de delphi. Espero que te sirva.
Ejemplo de copy:

function Copy ( Source : string; StartChar, Count : Integer ) : string;


var
Source, Target : string;

begin
Source := '12345678';
Target := Copy(Source, 3, 4);
ShowMessage('Target : '+Target);
end;

Delphius
19-06-2012, 00:56:24
Bueno, un sólo insulto más, sea de quien sea, y se cierra el hilo y se amonesta al que lo haga.

Así que, por favor, cuenten hasta diez... mil y... aquí paz, gracias :)
Pues ya conté. Y bueno tal parece que Jeremías lo quiere seguir la discusión por privado. Pues allí el, porque en ningún momento lo insulté salvo al recibir uno de su parte.
Si fuera tan macho como piensa a que lo exprese aquí.
Si el no ha sido capaz de entender los puntos, y quiso tomar mal algo que se le dijo de buena manera para cuidar su integridad de sus aportaciones y de su experiencia previa pues alli el.
Jeremias bien dices que soy gordo, claro que lo soy... ¿y qué? Se me pasa con ejercicios... Seré gordo pero bien guapo. Y si, se me presta lo picante... me encanta el picante, hasta el puta parió fijate. :p
Boludo y si che... las tengo bien grande como buen macho para decirlo aqui y no en privado.
Te quedaste en lo caliente con Azid y no sos capaz de reconocerlo.
Pido mi sanción correspondiente Casimiro.

Saludos,

Casimiro Notevi
19-06-2012, 01:00:54
Bueno, cierro este hilo, en privado pueden tirarse las sartenes todo lo que quieran.