![]() |
String in einer Stringliste an Trennzeichen zerlegen
Hallo zusammen,
Ich möchte aus meiner Telefonanlage einkommende Nummern auslesen, via Asterisk. Ich hab ein Problem und zwar hab ich einen sehr großen String mit Zeilenumbrüchen und möchte versuchen die Nummer zu extrahieren. Der String: Zitat:
Wie würdet ihr versuchen an die Nummer zu kommen? |
AW: String
Hallo,
TStringList LoadFromFile und dann die StringList durchlaufen und mit Pos(ZeilenString, 'CallerIDNum: ')=1 die richtige Zeile finden. Und zum Schluss mit Copy oder StringReplace die Nummer extrahieren. |
AW: String
Zitat:
Die String Variable ist bereits in Delphi gespeichert und mit Pos hab ich bereits die CallerIDNum ermittelt. Bzw eine Funktion geschrieben um auch andere Zeilen zu ermittelt: Zitat:
|
AW: String
Delphi-Quellcode:
var
sl: TStrings; .. try sl := TStringList.Create; sl.Text := Buffer; result := sl[sl.IndexOf( ContainString)]; finally sl.Free; end; |
AW: String
Wir wäre es denn hiermit:
Delphi-Quellcode:
function ExtractCallerID(const AFileName: string): string;
var lst: TStringList; begin lst := TStringList.Create; try lst.LoadFromFile(AFileName); lst.NameValueSeparator := ':'; Result := Trim(lst.Values['CallerIDNum']); finally lst.Free; end; end; |
AW: String
:thumb: elegant wie immer...
|
AW: String
Ah Okay, ich hab den Kontext von TStringlist falsch aufgefasst.
@edit: Funktioniert, wieder was dazu gelernt. Nochmals vielen dank. |
AW: String in einer Stringliste an Trennzeichen zerlegen
Ich habe den Titel mal etwas aussagekräftiger formuliert.
|
AW: String in einer Stringliste an Trennzeichen zerlegen
Nur der Vollständigkeit halber :)
Delphi-Quellcode:
function GetCallerId(str: string): string;
var Match: TMatch; begin result := ''; Match := TRegex.Create('CallerIDNum:(.*)').Match(str); if Match.Success then result := Trim(Match.Groups[1].Value); end; |
AW: String in einer Stringliste an Trennzeichen zerlegen
Dann würde ich mir doch lieber das Trim sparen und per RegEx auch nur den Wert ohne Leerzeichen holen:
CallerIDNum: *(.*) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:51 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 by Thomas Breitkreuz