Foros Club Delphi

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

igamerpc 24-03-2020 18:35:07

telefono delphi
 
Buenas tardes:


Como utilizar el codigo para extraer el prefijo de telefono.

Ejemplo (981) 15121351615 eso un ejemplo solo extraer ese prefijo dentro de parentesis.


Utilice Copy pero no se puede el problema puede 2 o 3 numeros prefijo puede 91 o 981.
Utilice length pero se encuentra todos numeros.


Cual codigo pueda extraer ese prefijo.

Casimiro Notevi 24-03-2020 18:46:51

A ver qué código has usado.
Fíjate que tienes que buscar el paréntesis de inicio y el de cierre.

igamerpc 24-03-2020 18:54:28

No use pero he probado, para averiguar extraer solo prefijo para poder registrar.
Te voy a poner ejemplo:
Código Delphi [-]
  const number=['0'..'9'];
  telefono: string; 
  p: string;
  i: integer
  telefono:=(911)51561;
  p := ''";
  for i := 1 to length(telefono) do
  begin
    if telefono[i] in number then
      p := p + telefono[i];
  end;
Eso salia todos numero 91151561
Si utilizo con Copy(telefono, 2,4) salia bien pero el problema cuando el prefijo 91 salia 91).

ecfisa 24-03-2020 18:58:17

Hola.

Código Delphi [-]
...
uses StrUtils;

function GetPrefix(const Number: string): string;
var
  p1, p2: Integer;
begin
  p1 := Pos('(', Number);
  p2 := PosEx(')', Number, p1);
  Result := Copy(Number, p1+1, p2-p1-1);
end;

Ejemplo de uso:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage(GetPrefix('(981) 15121351615'));
end;

Saludos :)

igamerpc 24-03-2020 19:20:01

Exacto me funciono. Gracias. :)



¿Dentro procedure se puede ejecutar sin function?

ecfisa 24-03-2020 19:25:25

Hola.
Cita:

Empezado por igamerpc (Mensaje 536438)
Exacto me funciono. Gracias. :)



¿Dentro procedure se puede ejecutar sin function?

Si:
Código Delphi [-]
...
uses StrUtils;  // PosEx

procedure TForm1.Button1Click(Sender: TObject);
var
  Number: string;
  p1, p2: Integer;
begin
  Number := '(981) 15121351615';
  p1 := Pos('(', Number);
  p2 := PosEx(')', Number, p1);
  ShowMessage(Copy(Number, p1+1, p2-p1-1));
end;

Saludos :)

igamerpc 24-03-2020 19:30:05

No sabia utilizar



Código Delphi [-]
uses StrUtils;


No conocia eso. Ya esta de maravilla funciona. :)


La franja horaria es GMT +2. Ahora son las 11:50:45.

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