Foros Club Delphi

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

jefraub 28-04-2005 09:59:20

Seleccionar parte de una cadena
 
Hola a todos.

Necesito selecionar parte de una cadena de texto proveniente de un edit. Se trata de un codigo de 8 digitos, y necesito seleccionar los dos primeros y los que hacen 3y4 es decir:

12345678

y necesito sacar por un lado 12 y por otro 34

Os agradeceria que me ayudarais

Muchas gracias por anticipado.

Yomis 28-04-2005 10:56:58

Pues una posible idea sería meter todos los digitos que introduzcas en un array; es decir, cada vez k metes uno lo copias en el array y vas sumando 1 al indice(para asi pasar al siguiente registro).....y lo podrías hacer desde el metodo OnKeyPress del edit.

jefraub 28-04-2005 11:05:03

No existe un método??
 
Muchas gracias yomis, pero me suena que existe un método que selecciona parte de una cadena, que selecciona o por la derecha o por la izquierda, pero es que ahora mismo no recuerdo. A ver si alguien lo sabe.

Muchas gracias otra vez, sino es una buena opción.
Un saludo

Yomis 28-04-2005 11:15:26

Pues ahora no caigo en si hay o no esa funcion :S asi que te digo otra forma.xDD

A ver, copias la cadena edit en una variable de tipo String y como sabes que quieres los 4 primeros caracteres de dicha cadena podrias poner algo asi:
Código:


  //declaras digitos y contador como globales
 
  procedure TForm1.Button1Click(Sender: TObject);
  var
    dos, tres: string;
 
  begin
  digitos := edit1.Text;
  dos := digitos[1] + digitos[2]; //2 primeros caracteres
  ShowMessage(dos);
  tres := digitos[3] + digitos[4]; //3º y 4º
  ShowMessage(tres);
  end;
 
  procedure TForm1.Edit1Change(Sender: TObject);
  begin
    contador := contador + 1;
    if (contador = 8) then
      button1.Enabled := true;
  end;
 
  procedure TForm1.FormActivate(Sender: TObject);
  begin
    contador := 0;
  end;

Lo unico que tendrias que hacer es con el metodo OnkeyPress hacer que si le da a borrar kite 1 al contador, ect....

No se si es lo k kerias :P pero es lo k entendi.xDDD

Neftali [Germán.Estévez] 28-04-2005 12:09:06

Cita:

Empezado por jefraub
...existe un método que selecciona parte de una cadena, que selecciona o por la derecha o por la izquierda, pero es que ahora mismo no recuerdo. A ver si alguien lo sabe.

Revisa la ayuda sobre la función Copy de Delphi. No se si es a esa a la que te refieres.

Código Delphi [-]
   Str := Copy('12345678', 1, 2);    // Te devolverá '12'
   Str := Copy('12345678', 3, 2);    // Te devolverá '34'

deberías hacer alguna comprobación con la longitud del string por ejemplo, para evitar sorpresas...:D

Delfino 02-05-2005 22:36:29

Cita:

pero me suena que existe un método que
LeftStr, RightStr, MidStr..


La franja horaria es GMT +2. Ahora son las 09:32:26.

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