
Obtener primra letra de cada palabra
#1
Escrito 14 febrero 2012 - 06:17
Existe alguna función que me permita saber cual es la primera letra de cada palabra en un texto u oración?
Ej.
"Esto es solo una prueba" me arroje "Eesup"
Gracias anticipadas.
#2
Escrito 14 febrero 2012 - 07:37
DELPHI AL LIMITE
Talvez tengas que utilizar la combinacion de dos o mas funciones de estas. Por ejemplo puedes dividir la oracion con esta:
function WrapText( const Line, BreakStr: string; nBreakChars: TSysCharSet; MaxCol: Integer ):string; overload;
function WrapText( const Line, MaxCol: Integer = 45 ):string; overload;
La función WrapText parte la cadena Line en múltiples líneas de texto separadas por defecto con los caracteres de control #13 y #10, en tamaños máximos de palabra definidos por MaxCol. Veamos algunos ejemplos:
WrapText( 'Partiendo una cadena de texto', 15 ) devuelve
Partiendo una
cadena de texto
WrapText( 'Partiendo una cadena de texto', 10 ) devuelve:
Partiendo
una
cadena de
texto
WrapText( 'Partiendo una cadena de texto', 5 ) devuelve:
Partiendo
una
cadena
de
texto
Es decir, parte la cadena en frases cuyo tamaño máximo es definido por MaxCol pero respetando en ancho de cada palabra (aunque se pase del límite). También podemos definir con que caracteres vamos a separar las palabras así como que deseamos de separador. Si quisieramos separar la frase mediante por punto sería de la siguiente manera:
WrapText( 'Partiendo.una.cadena.de.texto', '-', ['.'], 5 ) devuelve
Partiendo.-una.-cadena.-de.-texto
Hemos definido el separador (quitando #13 y #10) y también le hemos indicado el carácter que divide cada palabra (el punto).
pero revisa las funciones y mira si alguna te sirve
#3
Escrito 14 febrero 2012 - 07:54
También podrías implementar una función Split:
http://delphi.about....bltip1102_5.htm
y luego con otra función tomar el primer caracter de cada letra
Saludos
#4
Escrito 14 febrero 2012 - 09:30
Y que tal usando un TStringList.
procedure TForm1.Button1Click(Sender: TObject); var Lista: TStrings; I: Integer; Iniciales: string; begin Lista := TStringList.Create; Lista.Delimiter := ' '; Lista.StrictDelimiter := true; Lista.DelimitedText := Edit1.Text; Iniciales := ''; for I := 0 to Lista.Count-1 do Iniciales := Iniciales + Lista.Strings[I][1]; Label1.Caption := Iniciales; Lista.Free; end;
Saludos
Archivos adjuntos
#5
Escrito 15 febrero 2012 - 08:56
function PrimaL(const S: string): String; var i: integer; begin if IsCharAlphaNumeric(S[1]) and (S[1] <> ' ') then Result:= Result + S[1] else Result:= ''; for i:= 1 to Length(S) do if (Not IsCharAlphaNumeric(S[i]) or (S[i] = ' ')) and (S[i+1]<>' ') then Result:= Result + S[i+1]; end;
Saludos.
#6
Escrito 15 febrero 2012 - 09:23
No conocia esa función amigo escafandra

Hay tantas funciones que no conozco que de solo pensar en estudiarlas ya me dio miedo



Salud OS
#7
Escrito 15 febrero 2012 - 09:32
No conocia esa función amigo escafandra
![]()
Supongo que te refieres a IsCharAlphaNumeric. Pertenece a las funciones de cadena de la API de Windows, no a delphi.

PD: La uso para identificar nueva palabra en el hipotético caso de que exista un signo de puntuación sin espacio detrás.
Saludos.
#8
Escrito 15 febrero 2012 - 09:42
No conocia esa función amigo escafandra![]()
Supongo que te refieres a IsCharAlphaNumeric. Pertenece a las funciones de cadena de la API de Windows, no a delphi.
PD: La uso para identificar nueva palabra en el hipotético caso de que exista un signo de puntuación sin espacio detrás.
Saludos.
Así es, lo imaginaba, cHackAll, seoane y tú son los masters del API de Windows

Salud OS
#9
Escrito 15 febrero 2012 - 09:46
+1
No conocia esa función amigo escafandra![]()
Supongo que te refieres a IsCharAlphaNumeric. Pertenece a las funciones de cadena de la API de Windows, no a delphi.
PD: La uso para identificar nueva palabra en el hipotético caso de que exista un signo de puntuación sin espacio detrás.
Saludos.
Así es, lo imaginaba, cHackAll, seoane y tú son los masters del API de Windows
Salud OS

Saludos
#10
Escrito 15 febrero 2012 - 09:49
No conocia esa función amigo escafandra![]()
Supongo que te refieres a IsCharAlphaNumeric. Pertenece a las funciones de cadena de la API de Windows, no a delphi.
PD: La uso para identificar nueva palabra en el hipotético caso de que exista un signo de puntuación sin espacio detrás.
Saludos.
Saludos.
Tal como dice Egostar ustedes son los fuertes en API para Windows. No me imaginaba algo así, en una posible solución utilizaría los viejos Pos, Delete y Copy.
Cada día se aprende algo nuevo de los maestros.
#11
Escrito 15 febrero 2012 - 10:31





Gracias por iluminar nuestro camino

Saludox !

#12
Escrito 15 febrero 2012 - 11:02


Saludos.
#13
Escrito 15 febrero 2012 - 11:12
¡¡Exagerados !!.
![]()
Saludos.
Bueno, no es exageracion, cada quien tiene su area de experiencia, ustedes (espero no omitir a nadie) son API's y así podemos nombrar a cada uno porque eso se nota.
Por ejemplo, yo soy excelente para las artes culinarias, como me gusta la comida



Saludos
#14
Escrito 15 febrero 2012 - 06:41
Estoy teniendo un problema de conexion.
#15
Escrito 15 febrero 2012 - 07:37
