German Telefonnummer im Label mit Text wählen.

chefe82

Member
Licensed User
Longtime User
Hallo,
ich habe über die ganze Activity ein Label wo über eine Textdatei mit Inhalt gefüllt wird.
In dem textinhalt sind auch mehrere Telefonnummern. Wie ist es möglich die Nummer anzurufen?

Kann mir da jemand helfen?


Gruß
 

chefe82

Member
Licensed User
Longtime User
Hallo,
wie das geht weiß ich ich glaube du hast nicht verstanden was ich meine.
Es geht darum die Nummern aus einem Text heraus anrufen zu können, mit einer wäre das ja kein Problem aber da sind mehrere vorhanden.
 

JanPRO

Well-Known Member
Licensed User
Longtime User
Ok, vielleicht kannst du genauer erläutern wo das Problem liegt?

Edit: Ok, habe gesehen, dass du deinen letzten Beitrag editiert hast:
Und dein Problem ist jetzt wahrscheinlich, die einzelnen Nummer aus dem Text auszulesen?
 
Last edited:

JanPRO

Well-Known Member
Licensed User
Longtime User
Es wäre der falsche Ansatz, die Nummern jetzt aus dem Text herauszufiltern.
Besser ist es sich zu überlegen wie die Daten abgespeichert und ordentlich wieder eingelesen werden können. Ich kenne deine Datensätze nicht, aber wenn du jetzt nur Telefonnummern einlesen möchtest, dann bietet es sich beispielsweise an, die Datei mit den Nummern per File.ReadList einzulesen.

Jan
 

Heinz

Active Member
Licensed User
Longtime User
Sowas geht doch auch gut mit regulären Ausdrücken.
Allgemein etwa so :

[0-9]{1,}


Telefonnummern sind ja nichts anderes als Zahlen.
Etwas schwieriger wird es, wenn Vorwahl und Durchwahl
mit einem "-" getrennt sind. Ist aber auch machbar, indem
man den Pattern etwas erweitert.

Habs jetzt noch nicht mit B4A gemacht, aber so mache ich es bei
anderen Programmiersprachen für PC.
 

chefe82

Member
Licensed User
Longtime User
Hallo Heinz,
Ich weiß nicht was du mit regulären Ausdrücken meinst habe noch nicht damit gearbeitet.
Die Nummern wären nicht getrennt.
 

Heinz

Active Member
Licensed User
Longtime User
Das hier meinte ich :
https://www.b4x.com/android/forum/threads/reguläre-ausdrücke-regular-expressions-tutorial.8530/
Was hast du für ein Label genommen ?
Oder meinst du eine einfache View (sichtbare Liste) ?
Da kommt man ja sehr einfach an den Text ran.

Vielleicht zeigst du mal einen Auszug aus deiner Datei.
Auch das hier wäre dann interessant :
B4X:
Matcher
A Matcher object is used to search for a pattern in a string.
Regex.Matcher returns a matcher object for a specific pattern and specific text.
Example:
Dim text, pattern As String
text = "This is an interesting sentence with two numbers: 123456 and 7890."
pattern = "\d+" 'one or more digits
Dim Matcher1 As Matcher
Matcher1 = Regex.Matcher(pattern, text)
Do While Matcher1.Find
Log("Found: " & Matcher1.Match)
Loop

Hier das findet die zwei Zahlen 123456 und 7890 in der
Variablen text.
 
Last edited:

Heinz

Active Member
Licensed User
Longtime User
Auch wenn diese Textdatei von einem anderen Programm oder Gerät käme,
also nicht selber generiert wurde, würde ich das schon im Vorfeld in eine
Liste (List) einlesen und filtern. Beim Filtern könnte man das gleich in ein
Listview oder ScrollView setzen und bei einem Klick auswerten (PhoneCall).

Von daher wäre ein kleiner Auszug dieser Textdatei für uns interessant.
Dann wüßte man, wie man das angehen könnte.
 

chefe82

Member
Licensed User
Longtime User
@KMatle wie wäre den ein richtiger Aufbau mit trennzeichen
@Heinz über eine Listview will ich das net.

Das ist ein längerer Text mit Telefonnummer an verschiedene Stellen.

Es müßte doch machbar sein es gibt ja genügend Apps die das so haben, das die Telefonnummer oder e-Mail farblich hervorgehoben ist und bei anklicken entweder das e-Mail programm öffnet oder die Telefonnummer wählt.

Die Textdatei kann und darf ich aus aus Datenschutz gründen hier nicht veröffentlichen.

Gruß
 

Heinz

Active Member
Licensed User
Longtime User
Naja, wenn er mehrere Telefonnummern aus dem längeren Text haben
will, ist die obige Version mit reg. Ausdrücken am besten. Also wäre
das für ihn interessant :

B4X:
Do While Matcher1.Find
     Log("Found: " & Matcher1.Match)
Loop

Matcher1.Match enthält ja dann immer die nächste Nummer.
Könnte man dann auch in der Schleife in eine Liste einspeisen.

Labels sind ja vor allem dafür da, um was anzuzeigen. Wie sollte
man nun rausfinden, wenn der User auf das große Label klickt, welche
Telefonnummer er meint.

Außer einer Liste oder auch Buttons zum Klicken könnte ich mir
jetzt nichts vorstellen. Vielleicht machen die anderen Apps das
auch etwas anders : Dort, wo Telefonnummern stehen, werden
Buttons an das Label gekoppelt und halt die Schriftfarbe der
Buttons verändert. Da ist aber auch mehr Rechenarbeit erforderlich,
da man die x- und y - Positionen für die Buttons mitführen muß.
Außerdem weiß man ja im Voraus nicht, wieviel Buttons benötigt
werden. Bei Windows wäre das einfacher, da man einfach ein
offenes Array oder num. Liste für die Handles mitführen könnte.

Ob das bei B4A so einfach geht ?

Oder gibt der restliche Text Informationen zu den jeweiligen
Telefonnummern ?
z.B:
Wenn du kotzen mußt, wähle 123 oder aber wenn du Bauchweh
hast, wähle 456. Solltest du Hunger haben, wähle den Pizzadienst
789.

Sowas wäre dann eine wirkliche Herausforderung.
 
Last edited:

chefe82

Member
Licensed User
Longtime User
Hallo,

also eine umfangreichere Sache als gedacht.
dann lass ich es sein da werde ich mir was anderes einfallen lassen.

Danke für eure Bemühungen
 
Top