Bascom Zeichen ändern

#1946850
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.
Gast #1946945
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
Gast #1946957
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"
#1947023
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 ...
Gast #1947026
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:
1
dim demostring as string * 20
2
dim string_item (20) as byte at demostring overlay
3
Dim X As Byte
4

5
demostring = "hallo, du"
6
for x=1 to 20
7
  if string_item(x) = "," then
8
    string_item(x) = "."
9
  endif
10
next
11
Print Demostring
12

13
demostring = "hallo, du"
14
Replacechars Demostring , "," , "."
15
Print Demostring
16

17
End

Weinbauer: 558 Zyklen
REPLACECHARS: 83 Zyklen

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

screwdriver
#3726077
Lesenswert?

Vorschlag:
1
Dim Text As String * 16
2
Dim Text2 As String * 1 
3

4
do
5
...
6
Text = Lookupstr(_month , Monate) : Gosub Rpltxt : lcd Text  
7
...
8
wend
9

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

Die Chr(#) gemäß Zeichentabelle anpassen

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren