PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : String Manipulation



DarkFirefighter
04.03.2006, 13:40
Hallo,

ich möchte von einer Zahlenfolge sowohl links alsauch rechts 2 zeichen "abschneiden". Ich dachte Dabei an die Befehle Left und Right. Nur mein Problem ist der Datentyp mit dem ich arbeite ist Byte. Und die Befehle sind meinse wissens nach Stringoperationen und ich kann ja nicht einfach über eine zuweisung in eine Variable des Typs String den Byte in einen String verwandlen oder? Gibt es noch andere Möglichkeiten der Veränderung?

Gruß

-=[Cassiopeia]=-
04.03.2006, 14:42
du kannst eigentlich alle daten typen nach string konvertierten.
das geht so:

dim a as byte
bim b as string*10

b=str(a)

DarkFirefighter
04.03.2006, 14:51
Ah ok danke wofür steht das *10? von was hängt der Wert ab?

-=[Cassiopeia]=-
04.03.2006, 15:19
das string * x gibt die länge des strings an.
also string*10 heißt ein string mit 10 zeichen.
darauf musst du achten wenn du sehr lange zahlen hast.

du hast ja aber nur byte zahlen also von 0-255 dh es sollte ein string mit 3 zeichen genügen.
wenn du ihn aber dann noch auf nachkommen stellen etc ändern willst dann muss der string natülich länger sein.

linux_80
04.03.2006, 17:10
Das beste, denke ich, um von einer Zahl rechts eine Stelle abzuschneiden, ist sie durch 10 zu teilen und die Kommastellen wegfallen zu lassen.

-=[Cassiopeia]=-
04.03.2006, 17:21
soweit ich weiß, zumindest ist es bei mir so, hat der µc probleme beim dividieren. da kommt immer net genau des raus was ich will... :-)

PicNick
04.03.2006, 18:02
Um Platz zu sparen:
Du hast eine Byte-Tabelle

DIM MyByte(24) as Byte
Jetzt definierst du diese Daten nochmal als string

DIM MyString as string * 24 at MyByte OVERLAY
Rechts abschneiden mußt du nur NULL reinschreiben, wo der string aus sein soll:


mystring = "Roboternetz"
print mystring -------> "Roboternetz"
mybyte(10) = 0
print mystring -------> "Roboterne"

Links abschneiden mußt du nur " " reinschreiben, was wegfallen soll


mybyte(1) = 32 ein Leerzeichen
mybyte(2) = 32 ein Leerzeichen
mystring = LTRIM(mystring)
print mystring -------> "boterne"

lanic
06.03.2006, 21:14
wenn der string immer gleich lang ist könnte mann auch gut mid benutzen a = Mid(b , 3 , 1)

gruß Nico