
manejo de strings. 1a, 1b, 1c = 1abc
#1
Escrito 06 noviembre 2013 - 06:35
Puede ser cualquier numero y cualquier cantidad de letras, por ejemplo: 7a, 7b, 7c, 7d resultaría en 7abcd
8x, 8y = 8xy
30a, 30d, 30m = 30adm
etc, etc...
Alguna idea? se los agradecería mucho.
Saludos.
#2
Escrito 06 noviembre 2013 - 08:51
Que pasaría en éste supuesto caso:
7a, 8d, 30m = ????adm
o en éste:
7ab, 8dc, 30mx = ??????????
Saludos
#3
Escrito 06 noviembre 2013 - 08:56
Hola
Que pasaría en éste supuesto caso:
7a, 8d, 30m = ????adm
o en éste:
7ab, 8dc, 30mx = ??????????
Saludos
Hola y gracias por tu interés.. lo bueno es que no est taaaan complicado ya que éstos casos no se presentarían, el valor númerico siempre es el mismo, ya sea:
1a, 1b, 1c
37a, 37b
555x, 555y
etc...
lo que cambia es la letra (que es sólo un caracter despues del número)
#4
Escrito 06 noviembre 2013 - 09:07
A ver que tal
procedure TForm1.Button1Click(Sender: TObject); var lista: TStrings; Index: Integer; cadena: string; begin lista := TStringList.Create; Lista.CommaText := Edit1.Text; cadena := copy(Lista[1],1, length(lista[1])-1); for Index := 0 to Lista.Count - 1 do begin cadena := cadena + copy(Lista[ Index ], length(lista[ Index ]), 1); end; ShowMessage( cadena ); end;
Claro,habrá mejores soluciones que ésta

Saludos
PD, espero tener tiempo hoy de agregar los TAGS,

#5
Escrito 06 noviembre 2013 - 10:06
Hola
A ver que tal
delphi
procedure TForm1.Button1Click(Sender: TObject); var lista: TStrings; Index: Integer; cadena: string; begin lista := TStringList.Create; Lista.CommaText := Edit1.Text; cadena := copy(Lista[1],1, length(lista[1])-1); for Index := 0 to Lista.Count - 1 do begin cadena := cadena + copy(Lista[ Index ], length(lista[ Index ]), 1); end; ShowMessage( cadena ); end;
Claro,habrá mejores soluciones que ésta
Saludos
PD, espero tener tiempo hoy de agregar los TAGS,
Gracias, lo voy a probar y te cuento. Aunque seguro que funciona

Saludos!
#6
Escrito 08 noviembre 2013 - 01:23
Ese código tiene "un problema", y es que supone que el dato numérico es de 1 dígito. Lo primero que se debería hacer es recorrer el string (Lista[1]) mirando cada posición para ver si es un número. En caso de ser número, ir concatenando los encontrados en otra variable cadena hasta llegar a la posición en que encontremos una letra. Ahora, con la longitud de la nueva cadena con sólo números ya puedes hacer el Copy correctamente
Saludos
#7
Escrito 08 noviembre 2013 - 08:44
Buenas,
Ese código tiene "un problema", y es que supone que el dato numérico es de 1 dígito. Lo primero que se debería hacer es recorrer el string (Lista[1]) mirando cada posición para ver si es un número. En caso de ser número, ir concatenando los encontrados en otra variable cadena hasta llegar a la posición en que encontremos una letra. Ahora, con la longitud de la nueva cadena con sólo números ya puedes hacer el Copy correctamente
Saludos
Este....... no amigo Xavi, al contrario, yo asumo que la letra siempre va a ser de un caracter y todo lo demás (a la izquierda) son números

Hola y gracias por tu interés.. lo bueno es que no est taaaan complicado ya que éstos casos no se presentarían, el valor númerico siempre es el mismo, ya sea:
1a, 1b, 1c
37a, 37b
555x, 555y
etc...
lo que cambia es la letra (que es sólo un caracter despues del número)
Saludos