mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik String rchts und links abschneiden


Autor: Uwe Neubert (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: w124Dennis (Gast)
Datum:

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

Autor: Uwe Neubert (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ?!

Autor: Uwe Neubert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry, ich verwende Bascom.

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mid?

Autor: Uwe Neubert (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Uwe Neubert (Gast)
Datum:

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

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mid kann auch mit drei Argumenten aufgerufen werden ...
MID

Action

  - The MID function returns part of a string (a sub string).

  - The MID statement replaces part of a string variable 
    with another string.

 
Syntax

  var = MID(var1 ,st [, l] )

  MID(var ,st [, l] ) = var1

Remarks

  var    The string that is assigned.
  Var1   The source string.
  st     The starting position.
  l      The number of characters to get/set.


Autor: Hanns Weil (hannsw)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Uwe Neubert (Gast)
Datum:

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

Autor: Uwe Neubert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Hanns:


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

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Uwe Neubert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jo, nun glasklar !

Danke!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.