Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Copiar Caracteres (https://www.clubdelphi.com/foros/showthread.php?t=42224)

ZayDun 09-04-2007 06:41:46

Copiar Caracteres
 
hola! tengo una duda que espero que me sepais resolver....

Tengo un edit1.text al cual le llegan datos tipo... "RECIBIDO"($&%W%...

y como veis llega con las dichosas "" que la primera he logrado quitarla de esta manera

procedure TForm1.Button1Click(Sender: TObject);
begin
Delete(i, 1, 1);
End;


el problema es que no se como hacer para copiar RECIBIDO ya que despues del ultimo " me llega mas texto basura... gracias a todos los foreros por molestarse en leer mi problema.

dec 09-04-2007 06:46:24

Hola,

Tal como planteas el asunto, es decir, asumiendo que nos ha de llegar "basura" junto a la cadena que nos interesa, se me ocurre a bote pronto buscar, directamente, dicha cadena. Esto suponiendo que a ti lo que te interesa es saber si la cadena contiene "recibido" o no, como me parece que es.

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
  if Pos('RECIBIDO', Edit1.Text) <> 0 then
  begin
    ShowMessage('La cadena contiene RECIBIDO');
  end;
end;

Delphius 09-04-2007 08:23:18

Yo he estado pensando en tu pregunta.... y viendo lo que pone dec... me he quedado más confundido... No logro captar la finalidad que se persigue...

1. Si simplemente deseas saber si está la cadena PERMITIDO...
2. O Deseas borrar todo lo que le sigue: la basura...

Porque me llama la atención del Delete() que pones.

Si es la opción dos... no sería algo más sencillo hacer algo como:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
  if Pos('PERMITIDO',Edit1.Text) <> 0
     then Edit1.Text := 'PERMITIDO';
end;

Saludos,

ZayDun 09-04-2007 16:55:17

Re:
 
Hola de nuevo, teneis que perdonarme por que creo que no me explique como deberia. estoy haciendo un programa que traduzca una palabra del ingles a español y para ello conecto con una web a traves de un clientsocket, tengo un edit1.text que es donde pongo la palabra que quiero traducir, me conecto a la web y empiezo a recibir datos... la traducion esta metida entre estos caracteres result("palabra_ya_traducida")%&%""S% logro quitar result(" quedandome asi palabra_ya_traducida")&%&%"·&%" y lo que me gustaria ahora es poder decirle a delphi que elimine desde " hasta el final del un edit2.text donde yo pongo la respuesta. gracias de nuevo y perdonar si no me explique bien, UN SALUDO.

roman 09-04-2007 18:34:15

Pues ¿cómo quitas la primera parte? Porque el método que describiste al principio del hilo no funciona si hay algo antes del primer ".

Yo haría algo así:

Código Delphi [-]
var
  i: Integer;

begin
  (* Busco la primera " *)
  i := Pos('"', Texto);
  if i > 0 then
  begin
    Delete(Texto, 1, i); // borro todo hasta la primera "

    (* Busco la segunda " *)
    i := Pos("", Texto);
    if i > 0 then
    begin
      Delete(Texto, i, MaxInt); // borro hasta el final (tomado de seoane :))
    end;
  end;
end;

// Saludos

luisgutierrezb 09-04-2007 18:34:34

pues a mi se me haria mas facil algo asi como:
Código Delphi [-]
strResultado := Copy(strTraduccion, Pos('(')+2, Pos(')'-2 - Pos('(')+2);

la idea es buscar cuando se abre el parentesis, y agregamos 2 caracteres para que empieze en la palabra, despues buscamos donde se cierra, quitamos los caracteres, restamos la primera posicion para saber el numero de caracteres a copiar que pide la funcion y ya

ZayDun 09-04-2007 18:58:02

RE: Gracias!
 
gracias por tomaros vuestro tiempo, los codigos me han funcionado perfectamente!! :)


La franja horaria es GMT +2. Ahora son las 22:34:55.

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