AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Handynummer zu ordnen
Thema durchsuchen
Ansicht
Themen-Optionen

Handynummer zu ordnen

Ein Thema von QuickAndDirty · begonnen am 13. Okt 2008 · letzter Beitrag vom 20. Okt 2008
 
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.889 Beiträge
 
Delphi 12 Athens
 
#34

Re: Handynummer zu ordnen

  Alt 16. Okt 2008, 12:07
Also Amt wird in der Regel nicht durch die Telefonanlage weiter gegeben.
Wenn es Ausnahmnsweise doch so ist muss Amt angegeben werden.

Die Handynetzvorwahl oder die Ortsvorwahl werden bei allen von Extern kommenden Gesprächen angezeigt

habe noch mal von neu angefangen und verwende jetzt das hier:

Es funktioniert unter den diskutierten Bedingungen...und es funktioniert nicht in Italien...
ich glaube dem Problem stelle ich mich erst wenn einer unserer Italien Kunden das Telefonmodul einsetzt.
Delphi-Quellcode:
// Liefert die erste unterschiedliche Stelle oder 0 wenn
// keine Unterschiede bestehen.
Function EqualStr(a : String;
                  b : String) : Integer;
Var I : Integer;
    L : Integer;
    iLenA : Integer;
    iLenB : Integer;
Begin
  iLenA := Length(a);
  iLenB := Length(b);
  L := Min(iLenA,iLenB);
  For i := 1 to L Do
  Begin
    if a[i] <> b[i] then
    Begin
      result := i;
      exit;
    end;
  end;
  if iLenA <> iLenB then
  begin
    Result := succ(L);
    exit;
  end
  else
  begin
    Result := 0;
  end;
end;

Function FilterString(s,AllowedChars:String):String;
var i, j : integer;
    Erlaubt : boolean;
Begin
  Result := s;
  For i := 1 to length(s) do
  Begin
    Erlaubt := false;
    for j := 1 to Length(AllowedChars) do
    Begin
      if (Result[i] = AllowedChars[j]) then
      Begin
        Erlaubt := true;
        Break;
      end
    end;
    if not erlaubt then
      delete(result,i,1);
  end;
end;


Function EqualCaller(NumberOfCaller,
                     CallingNumber,
                     InternExitCode,
                     AreaCode,
                     CountryCode,
                     NationalExitcode:String):boolean;

  function DetectCode(aNumber,aCode:string): Boolean;
  Begin
    If (ACode = '') then
      Result := False
    else
      Result := (EqualStr(aNumber,Acode) = succ(length(acode)));
  end;

Var InternExitCodeDetected:boolean;
    InternalCalling:Boolean;
    MobileInternationalCalling:Boolean;
    CallerNumberPrefix:Boolean;
Begin
  Result := false;
  NumberOfCaller := FilterString(StringReplace(NumberOfCaller,'+',NationalExitcode,[]),'1234567890');
  CallingNumber := FilterString(StringReplace(CallingNumber,'+',NationalExitcode,[]),'1234567890');
  If (NumberOfCaller <> '') and (CallingNumber <> '') then
  begin
    //Amt elliminieren
    InternExitCodeDetected := DetectCode(CallingNumber,InternExitCode);
    If InternExitCodeDetected then
      delete(CallingNumber,1,length(internExitCode));
    //Amt Elliminiert

    InternalCalling := (not InternExitCodeDetected) and (InternExitCode<>'');


    If not InternalCalling then // Wenn Anruf von extern
    begin
      // Countrycode + AereaCode ohne Präfix elliminieren
      if length(CallingNumber) > Length(CountryCode) then
      begin
        MobileInternationalCalling := DetectCode(CallingNumber, CountryCode);
        if MobileInternationalCalling then
        Begin
          Delete(CallingNumber,1,length(CountryCode));
          CallerNumberPrefix := DetectCode(NumberOfCaller,'0'); //Prefix ermitteln
          if CallerNumberPrefix then
            Delete(NumberOfCaller,1,1) //Prefix löschen
          else
            exit;//Result := false; Weil ist InternalCaller aber nicht InternalCalling
        end;
      end;
      // Countrycode + AreaCode ohne Präfix elliminiert!
    end;
    Result := (NumberOfCaller = CallingNumber);
  end;// If (NumberOfCaller <> '') and (CallingNumber <> '') then
end;//Function EqualCaller(NumberOfCaller,....
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:03 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz