Forum: Mikrocontroller und Digitale Elektronik String rchts und links abschneiden


von Uwe Neubert (Gast)


Lesenswert?

Hi! Ich suche eine folgende Lösung für dieses Problem:

Ein String, lassen wir ihn mal so aussehen: 12345,ABCDEFG,5678

Die Zahlen am Anfang ändern sich nicht und die am Ende auch nicht, nur 
die Länge der Buchstabenkette ändert sich. (Telefonnummern auf Simkarte)

Nun dachte ich ganz einfach: Mit Right und left jeweils die Enden 
abschneiden und siehe da, man erhält die Nummer. Nix ist!

Mit Right erreicht man, dass alles von x-Stellen von rechts gezählt 
ERHALTEN wird und nicht gelöscht wird!!!  Gibt es nicht eine einfache 
Lösung diesen sich nicht ändernden Haufen links wie rechts zu löschen im 
String?

Danke für eure Antworten!

von w124Dennis (Gast)


Lesenswert?

Hallo
wie wäre es wenn du uns mal erzählst um was für eine programmiersprache 
es sich handelt?

von Uwe Neubert (Gast)


Lesenswert?

Ach nochwas, ich suche bisher vergebens in der Bascom-Hilfe angeblich 
enthaltenen Funktion "Split".

Wo ist es?  Habe in den anderen Forenthemen dazu nur gelesen es soll 
wohl da sein aber Split gibts in der Hilfe nicht ?!

von Uwe Neubert (Gast)


Lesenswert?

Sorry, ich verwende Bascom.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Mid?

von Uwe Neubert (Gast)


Lesenswert?

Folgendes,ich lese das< Telefonbuch mit at+cpbr=2 aus, es wird der 
zweite Eintrag ausgegeben. Nun muss ich die Rufnummer aus untenstehendem 
String selektieren:

at+cpbr=2 gesendet,es kommt vom Modem zurück:
+CPBR: 2,"+491721234567",145,"02"


Nun wird das Ergebnis berechnet!
Ich schreibe in Bascom:

Laenge = Mid(laenge2 , 10)


  Waitms 2000
  Print Laenge

Daraufhin ergibt sich folgendes:

"+491721234567",145,"02"  Der Anfang ist schonmal erledigt...

Da ich die Rufnummer im Textmodus für SMS-Versand nutzen will, so muss 
im String noch hinten der Rest nach der Nummer verschwinden, und wie 
gesagt,diese kann ja ihre Länge an anderer Stelle ändern!

Gruss, uwe!

von Uwe Neubert (Gast)


Lesenswert?

Ja,Rufus, nur MID trennt nur die ersten Stellen ab oder geht das auch 
für die hinteren?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Mid kann auch mit drei Argumenten aufgerufen werden ...
1
MID
2
3
Action
4
5
  - The MID function returns part of a string (a sub string).
6
7
  - The MID statement replaces part of a string variable 
8
    with another string.
9
10
 
11
Syntax
12
13
  var = MID(var1 ,st [, l] )
14
15
  MID(var ,st [, l] ) = var1
16
17
Remarks
18
19
  var    The string that is assigned.
20
  Var1   The source string.
21
  st     The starting position.
22
  l      The number of characters to get/set.

von Hanns W. (hannsw)


Lesenswert?

> +CPBR: 2,"+491721234567",145,"02"

alt = Deine Rückgabe
neu = ""
teil = ""
merken = falsch
start = 1

Beginne

  teil = Mid ( alt,start,1)
  wenn merken ) wahr, dann neu = neu + teil
  wenn Teil = ""
    wenn merken = wahr, dann ende
    wenn falsch dann merken = wahr
   start = start + 1

Ende

So in etwa?
Hanns

von Uwe Neubert (Gast)


Lesenswert?

Danke erstmal, the Number of Characters verstehe ich nicht. Das soll der 
dritte Wert für die Mid-Anweisung sein...

von Uwe Neubert (Gast)


Lesenswert?

@ Hanns:


Danke erstmal für en Tip, nur NOCH erkenne ich keine Logic darin :-)

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

> Danke erstmal, the Number of Characters verstehe ich nicht.
> Das soll der dritte Wert für die Mid-Anweisung sein...

Das ist die Anzahl der Zeichen, die extrahiert werden.


Angenommen, wir hätten einen String

  Text = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"


  Resultat = Mid(Text, 10, 3)

Dann enthält Resultat "KLM" (angenommen, der Index beginnt wie in C bei 
0 zu zählen, andernfalls wäre Resultat "MNO").

Wirds klarer?

von Uwe Neubert (Gast)


Lesenswert?

Jo, nun glasklar !

Danke!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.