PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : String und byte



rathma
15.02.2006, 11:55
hi, ich will aus einen string einen buchstaben(also ein byte) in eine variable speichern, die ich als byte declariere. ich hab mir das so vorgestellt:


dim var1 as byte
dim var2 as string *23

var2 = "Hallo Welt"
var1= mid(var2,1,1)


mein problem ist, das ich var1 als byte brauche und nicht als string *1 nehmen kann.

danke schonmal für eure tipss

gruss
markus

x-ryder
15.02.2006, 12:49
LOL, probieren geht über studieren ^^

du kannst einfach die var1 als string*1 nehmen, und dann ne weitere variable dimmen, mit byte als typ, und dann schreiben var3=var2, dann steht im falle von einem großen H in var3 nun 72 ^^

ich glaube doch das wollteste oder?

Martin

rathma
15.02.2006, 13:19
:-) so funzt es :-)


Dim Var1 As Byte
Dim Var2 As String * 23
Dim Var3 As String * 1
Var2 = "Hallo Welt"
Var3 = Mid(var2 , 1 , 1)
Var1 = Var3

aber wieso gehts nicht direkt?


dann noch eine kleine frage, gibt irgendwie ein befehl der einen string automatisch in grossbuchstaben wandelt (also aus "Hallo" "HALLO" machen)

Gruss
Markus

x-ryder
15.02.2006, 13:45
das mit dem dirket iss sone sache, die bascom leutz wissen ja nich immer, was du mit der methode machen willst, also machen sies herkömmlich mit strings, und du musst ja dann nur noch einmal umformen was ja nich mehr soo schwer iss...

UCASE verwandelt alles in großbuchstaben, LCASE in kleine.

aber mach nich so viel mit stringmanipulation, des iss schlecht mit den avrs, die brauchen ziemlich lang dafür, nimm überall wo du kannst lieber zahlen, das tut dem auf jeden fall besser, und senkt die ausführungszeit

Martin

rathma
15.02.2006, 14:41
ich komm da leider nicht um strings ganz rum, da ich ein adapter zwischen rs232 und einen bus für ein display baue.

danke nochmal für deine hilfe und erklärung

rathma
15.02.2006, 18:13
zu früh gefreut. :/ sobald einmal mid über rline1 ist wird der inhalt der variablen total verändert



For I = 1 To 8

Tmpbytevar = Mid(rline1 , I , 1)
Radiotext(i) = Tmpbytevar

Next I

x-ryder
15.02.2006, 18:16
nochmal, was soll da jetzt gehen, und was geht nich?

rathma
15.02.2006, 18:21
wenn ich rline1="HALLO123"

dann steht danach in radiotext(1) "H" in radiotext(2) ein "O" und die von 3-8 sind leer

die variablen sind so declariert:

Dim Tmpbytevar As String * 1
Dim Rline1 As String * 8
Dim Radiotext(8) As Byte

x-ryder
15.02.2006, 18:31
also so funztes bei mir super:


Dim Tmpbytevar As String * 1
Dim Rline1 As String * 8
Dim Radiotext(8) As Byte

Rline1 = "HALLOWEL"

Dim I As Byte

For I = 1 To 8

Tmpbytevar = Mid(rline1 , I , 1)
Radiotext(i) = Tmpbytevar

Next I

Martin

PicNick
15.02.2006, 18:54
Schau mal, vielleicht hilft das

https://www.roboternetz.de/wissen/index.php/Bascom_Strings_und_Bytes

rathma
16.02.2006, 01:07
jetzt läufts auf einmal. entweder der simulator hat gesponnen oder???

ich hab auf alle fälle kein bit im quellcode geändert.