![]() |
Telefonnummer in Bestandteile zerlegen
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:
Aber irgendwie gefällt mir diese Lösung nicht besonders. Habt ihr evtl. nen besseren Ansatz für mich ?
// Ort Finden
if StrLeft(qryAnrufe.FieldByName('telnummer').AsString, 1) = '0' then 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; |
Re: Telefonnummer in Bestandteile zerlegen
Wie sieht eine solche Nummer aus?
|
Re: Telefonnummer in Bestandteile zerlegen
z.B. so
0350465x1x3 oder 016285x2x50 oder 07711x89x8x Das Problem ist das die Vorwahlen eine unterschiedliche Länge haben können. |
Re: Telefonnummer in Bestandteile zerlegen
Zitat:
|
Re: Telefonnummer in Bestandteile zerlegen
ein kleine Unterfunktion bringt Ordnung in den Code.
Du brauchst eine Funktion, die dir x-Stellen der Telnr von links liefert:
Delphi-Quellcode:
Dann einfach das Ganze in einer Schleife:
function PhoneLeftPart(anz:integer):string;
begin result := StrLeft(TrimLeft(qryAnrufe.FieldByName('telnummer').AsString), anz); end;
Delphi-Quellcode:
Mit Zwischenvariablen (z.B. ort:string)wird die Sache schon wesentlich eleganter.
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; |
Re: Telefonnummer in Bestandteile zerlegen
Hallo,
eventuell stecken in diesem thread ein paar Ideen, die hier wiederverwendet werden können: ![]() Grüße vom marabu |
Re: Telefonnummer in Bestandteile zerlegen
ok...
Danke für die Anregungen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:28 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz