AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Telefonnummer in Bestandteile zerlegen

Ein Thema von TKC · begonnen am 12. Okt 2006 · letzter Beitrag vom 12. Okt 2006
Antwort Antwort
Benutzerbild von TKC
TKC

Registriert seit: 21. Apr 2004
Ort: Tuningen
367 Beiträge
 
Delphi XE2 Enterprise
 
#1

Telefonnummer in Bestandteile zerlegen

  Alt 12. Okt 2006, 09:27
Hallo,

ich baue gerade ein kleines Anrufer Log.

Ich bekomme jetzt die Telefonnummern von meiner Telefonanlage und will die Nummern in ihre Bestandteile,
wie Länderkennung,Vorwahl,Rufnummer, zerlegen.

Ich habe eine Tabelle mit den entsprechenden Vorwahlen und arbeite mit Locate um z.b. den Ort zu bekommen.

Bisher mache ich das so...

Delphi-Quellcode:
        // Ort Finden
        if StrLeft(qryAnrufe.FieldByName('telnummer').AsString, 1) = '0then
          begin
            sVw := StrLeft(qryAnrufe.FieldByName('telnummer').AsString, 6);
            if tblVorwahlen.Locate('vorwahl', sVw, []) then
              li.Captions[4] := tblVorwahlen.FieldByName('ort').AsString
            else
              begin
                sVw := StrLeft(qryAnrufe.FieldByName('telnummer').AsString, 5);
                if tblVorwahlen.Locate('vorwahl', sVw, []) then
                  li.Captions[4] := tblVorwahlen.FieldByName('ort').AsString
                else
                  begin
                    sVw := StrLeft(qryAnrufe.FieldByName('telnummer').AsString, 4);
                    if tblVorwahlen.Locate('vorwahl', sVw, []) then
                      li.Captions[4] := tblVorwahlen.FieldByName('ort').AsString
                    else
                      begin
                        sVw := StrLeft(qryAnrufe.FieldByName('telnummer').AsString, 3);
                        if tblVorwahlen.Locate('vorwahl', sVw, []) then
                          li.Captions[4] := tblVorwahlen.FieldByName('ort').AsString
                      end;
                  end;
              end;
          end;
Aber irgendwie gefällt mir diese Lösung nicht besonders. Habt ihr evtl. nen besseren Ansatz für mich ?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Telefonnummer in Bestandteile zerlegen

  Alt 12. Okt 2006, 09:32
Wie sieht eine solche Nummer aus?
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von TKC
TKC

Registriert seit: 21. Apr 2004
Ort: Tuningen
367 Beiträge
 
Delphi XE2 Enterprise
 
#3

Re: Telefonnummer in Bestandteile zerlegen

  Alt 12. Okt 2006, 09:40
z.B. so

0350465x1x3

oder

016285x2x50

oder

07711x89x8x

Das Problem ist das die Vorwahlen eine unterschiedliche Länge haben können.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Telefonnummer in Bestandteile zerlegen

  Alt 12. Okt 2006, 09:44
Zitat:
Das Problem ist das die Vorwahlen eine unterschiedliche Länge haben können.
Und wie willst du dann erkennen, wo die eigentliche (Basis-)Telefonnummer anfängt? Ist imho nur mit Abgleich einer Voewahlenliste erreichbar.
Markus Kinzler
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#5

Re: Telefonnummer in Bestandteile zerlegen

  Alt 12. Okt 2006, 09:53
ein kleine Unterfunktion bringt Ordnung in den Code.
Du brauchst eine Funktion, die dir x-Stellen der Telnr von links liefert:
Delphi-Quellcode:
function PhoneLeftPart(anz:integer):string;
begin
   result := StrLeft(TrimLeft(qryAnrufe.FieldByName('telnummer').AsString), anz);
end;
Dann einfach das Ganze in einer Schleife:
Delphi-Quellcode:
ort := 'unbekannt';
for i := 6 downto 3 do
begin
   sVw := PhoneLeftPart(i);
   if tblVorwahlen.Locate('vorwahl', sVw, []) then
   begin
      ort := tblVorwahlen.FieldByName('ort').AsString
      break;
   end;
end;
li.Captions[4] := ort;
Mit Zwischenvariablen (z.B. ort:string)wird die Sache schon wesentlich eleganter.
Andreas
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#6

Re: Telefonnummer in Bestandteile zerlegen

  Alt 12. Okt 2006, 10:00
Hallo,

eventuell stecken in diesem thread ein paar Ideen, die hier wiederverwendet werden können:
telefonnummern trennen in vorwahlrufnummer mit tsql

Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von TKC
TKC

Registriert seit: 21. Apr 2004
Ort: Tuningen
367 Beiträge
 
Delphi XE2 Enterprise
 
#7

Re: Telefonnummer in Bestandteile zerlegen

  Alt 12. Okt 2006, 15:11
ok...

Danke für die Anregungen.
  Mit Zitat antworten Zitat
Antwort Antwort


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 00:36 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