Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Comparar caracteres de una cadena (https://www.clubdelphi.com/foros/showthread.php?t=68834)

cslbcn 09-07-2010 14:05:16

Comparar caracteres de una cadena
 
Hola.

tengo una cadena de texto con simbolos (A35-5677:G6) y quiero que esa cadena se convierta en (A355677G6).

He conseguido hacer el recorrido carácter por carácter pero no consigo hacer la comparación, es decir, hacer algo así:

cadenaCaracteresParaComparar = 'abcdrfghijklmnopqrstuvwxyzABCDRFGHIJKLMNOPQRSTUWXYZ1234567890'

cadenaOriginal = A35-5677:G6

for A hasta el 6 hacer:
si A está en cadenaCaracteresParaComparar -> OK

Si - no está en cadenaCaracteresParaComparar -> BORRAR

como se haría esa comparación? alguna funcion?

Caro 09-07-2010 15:07:57

Hola cslbcn, tu cadena a comparar puedes tomarlo como un conjunto:

Código Delphi [-]
 
 cadenaOriginal := 'A35-5677:G6';
 
 for i:=Length(cadenaOriginal) downto 1 do
  begin
   if not(cadenaOriginal[i] in ['a'..'z','A'..'Z','0'..'9']) then
     Delete(cadenaOriginal,i,1);
  end;

Saluditos

ecfisa 10-07-2010 12:41:54

Hola.

La solución de Caro funciona perfectamente, pero se me ocurrió una idea y bue... ya que estoy la pongo.

Código:

procedure SacarExtras(var Cadena:string; ASacar: string);
var
  i: Integer;
begin
  for i:= Length(Cadena) downto 1 do
    if Pos(Cadena[i], ASacar) > 0 then
      Delete(Cadena, i, 1);
end;

se la llamaría:
Código:

...
  Cadena:= 'A35-5677:G6';
  SacarExtras(Cadena, '-:*#$.@'); { no es una grosería }

Saludos.

cslbcn 10-07-2010 13:18:27

muchas gracias a los 2.


La franja horaria es GMT +2. Ahora son las 04:15:41.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi