www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Bascom Zeichen ändern


Autor: Schmit Andreas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo guten Abend, ich wollte ma fragen wie man im Bascon ein zeichen 
ändert, man bekommt etwas mit einem Komma und man will den Komma in der 
Programierung durch einen Punkt ersetzen.

Variable (3) = "."
Funktioniert das nicht irgendwie so???

Grüsse

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schmit Andreas schrieb:
> hallo guten Abend, ich wollte ma fragen wie man im Bascon ein zeichen
> ändert, man bekommt etwas mit einem Komma und man will den Komma in der
> Programierung durch einen Punkt ersetzen.
>
> Variable (3) = "."
> Funktioniert das nicht irgendwie so???

Probier mal

Variable(3) = '.'


Zwischen " und ' wird in vielen Programmiersprachen unterschieden.
' wird für 1 Zeichen benutzt
" wird für Zeichenketten (vulgo Strings) benutzt.

Einem einzelnen Zeichen eines Strings kann man aber logischerweise 
keinen ganzen String zuweisen. Wohl aber ein neues einzelnes Zeichen.

Autor: penguin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ' - Zeichen ist eine Substitution für das (alte) REM - eine 
Einleitung eines Kommentares innerhalb einer Zeile.

Autor: Schmit Andreas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
klapp irgendwie nicht, gibts keine andere Lösung um einfach nur das 
Komma mit einem Punkt zu ersetzen??

Autor: Spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Dann weise einfach den ASCII-Code ($2E) zu.

MfG Spess

Autor: Charly B. (charly)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du kannst einen Sring in ein array 'mapen',
i weiss nicht wie ichs besser ausdruecken kann,
heist irgendwie mit overlay
schau mal in die Hilfe bei Dim glaub ich

viel erfolg
vlG
Charly

Autor: Schmit Andreas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit ascii funktioniert auch nicht

@ charly B.:Sorry bin noch anfänger

es muss doch eine einfache lösung geben die jedermann versteht

Autor: Schmit Andreas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der befehl FORMAT klappt es vielleicht mit dem ???

Autor: Spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>Mit ascii funktioniert auch nicht

Dann vielleicht so:

Variable(3) = CHR($2E)

MfG Spess

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
[basic]
Dim Textout As String * 11
Textout = "42,23"
Print Textout
Replacechars Textout , "," , "."
Print Textout
[/basic]

Autor: Weingut Pfalz (weinbauer)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
dim demostring as string * 20
dim string_item (20) as byte at demostring overlay

demostring = "hallo, du"

for x=1 to 20
  if string_item(x) = "," then
    string_item(x) = "."
  endif
next

print demostring

Autor: Schmit Andreas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>  = CHR($2E)

Glaubste nicht es würde an den Klammern liegen wo die 3 drin steht, denn 
er glaubt vielleicht das (Variable(3))wäre die ganze variable aber ich 
will ja nur die dritte stelle der Variable ersetzen

grüsse

Autor: screwdriver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schmit Andreas schrieb:
> hallo guten Abend, ich wollte ma fragen wie man im Bascon ein zeichen
> ändert, man bekommt etwas mit einem Komma und man will den Komma in der
> Programierung durch einen Punkt ersetzen.

Hi,

dafür wurde in Version 1.12.0.0 der Befehl REPLACECHARS eingeführt.

Ich zitiere aus der Bascom-Hilfe:

Syntax: REPLACECHARS  string , old,new

string: A string variable.
old: A character or byte with the ASCII value of the character to search 
for.
new: A character of byte with the ASCII value with the new value.

When we have a string with a content of : "abcdefabc" and we want to 
replace the "a" by an "A" we can use :

Replacechars string , "a" , "A"

Autor: screwdriver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@stefan
Ich glaub, ich werd langsam alt. Du warst einfach schneller als ich.

screwdriver

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ screwdriver

Dafür warst du sorgfältiger, weil du die Versionsnummer hast und den 
Hilfetext.

@ Fhutdhb Ufzjjuz

Giftige Sache, da könnte sogar mir Bascom Spaß machen! Mit 
Totenkopfbildchen und Warnung "Take care with the OVERLAY option. Use it 
only when you understand it." im Handbuch :-)

Autor: Weingut Pfalz (weinbauer)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stefan B. schrieb:
> @ Fhutdhb Ufzjjuz
>
> Giftige Sache, da könnte sogar mir Bascom Spaß machen! Mit
> Totenkopfbildchen und Warnung "Take care with the OVERLAY option. Use it
> only when you understand it." im Handbuch :-)

hä ????  :o)

Das ist die richtige Verwendung von Overlay ... zumindest mach ich's
nicht selten so ;o)

Manche Sachen sind in Bascom echt easy zu proggen ...

Autor: screwdriver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich selbst habe die REPLACECHARS Funktion noch nicht benutzt und hätte 
sie - wenn ich nicht ab und zu mal die "history.txt" im Bascom 
Verzeichnis durchlesen würde - glatt übersehen.

REPLACECHARS ist übrigens sauschnell. Im Vergleich zur von Weinbauer 
vorgestellten Selfmade-Lösung ergibt sich:
dim demostring as string * 20
dim string_item (20) as byte at demostring overlay
Dim X As Byte

demostring = "hallo, du"
for x=1 to 20
  if string_item(x) = "," then
    string_item(x) = "."
  endif
next
Print Demostring

demostring = "hallo, du"
Replacechars Demostring , "," , "."
Print Demostring

End

Weinbauer: 558 Zyklen
REPLACECHARS: 83 Zyklen

@Weinbauer: Gäbe es REPLACECHARS nicht, hätte ich es genau so gemacht.

screwdriver

Autor: Schmit Andreas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
dim string_item (20) as byte at demostring overlay

diese zeile versteh ich nicht

Autor: MWS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schmit Andreas schrieb:
> dim string_item (20) as byte at demostring overlay

Das legt ein Byte-Array genau über den Speicherbereich des Strings.
Damit lassen sich die einzelnen Zeichen des Strings als Byte ansprechen.

Autor: Jens S. (jens_s56)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vorschlag:
Dim Text As String * 16
Dim Text2 As String * 1 

do
...
Text = Lookupstr(_month , Monate) : Gosub Rpltxt : lcd Text  
...
wend

 ' bei der Variable >Text< werden die Sonderzeichen getauscht:
Rpltxt:                                                
 Text2 = Chr(225) : Replacechars Text , "ä" , Text2
 Text2 = Chr(239) : Replacechars Text , "ö" , Text2
 Text2 = Chr(245) : Replacechars Text , "ü" , Text2
 Text2 = Chr(226) : Replacechars Text , "ß" , Text2
Return 


Die Chr(#) gemäß Zeichentabelle anpassen

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

Bewertung
0 lesenswert
nicht lesenswert
Meinst Du, daß das Thema nach nur vier Jahren noch aktuell ist?

Autor: Wattt??? (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, alle vier Jahre ist WM und wir gewinnen !!!!

Autor: hf (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Wattt??? schrieb:
> und wir gewinnen !!!!

Was hast DU denn damit zu tun? Hast du mitgespielt?
Die Millionäre haben gewonnen. Du hast bezahlt. So einfach ist das.

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.