[Monkey] Left Right Stringmanipulationen

Übersicht Andere Programmiersprachen Beginners-Corner

Neue Antwort erstellen

Midimaster

Betreff: Left Right Stringmanipulationen

BeitragFr, März 11, 2011 11:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich schreibe mal als erster rein, weil ich grad was herausgefunden habe. (Vielleicht ist es ja profan, aber vielleicht nützt es ja dem einen oder anderen, der von BB oder BMax kommt.

In MONKEY gibt es keine LEFT$ oder RIGHT$ Befehle wie:
BlitzMax: [AUSKLAPPEN]
T$="asdfgh"
S$ = Left(T,3)

***Ausgabe = asd


Vielmehr muss dieser Befehl über ein virtuelles Array nachgebildet werden:
BlitzMax: [AUSKLAPPEN]
Local T$="asdfgh"
Local S$ = T[..3]

***Ausgabe = asd


Alles von links bis zum vorletzen Zeichen:
BlitzMax: [AUSKLAPPEN]
Local T$="asdfgh"
Local S$ = T[..-1]


***Ausgabe = asdfg


Der Ersatz für RIGHT lautet dann:
BlitzMax: [AUSKLAPPEN]
Local T$="asdfgh"
Local S$ = T[-3..]

***Ausgabe = fgh



Aber auch das geht: Alles ab dem 2.Zeichen bis zum Ende wie Mid(T,1,-1)
BlitzMax: [AUSKLAPPEN]
Local T$="asdfgh"
Local S$ = T[1..]

***Ausgabe = sdfgh

man beachte das die Zählung bei 0 beginnt!


Wer den ASCII des Zeichen an der 3. Stelle im String benötigt, schreibt statt...
BlitzMax: [AUSKLAPPEN]
Local T$="asdfgh"
Local S$ = T[2]

***Ausgabe = 100

man beachte das die Zählung bei 0 beginnt!

Daher sieht der Mid$ vom 3. bis zum 5.Zeichen dann so aus:
BlitzMax: [AUSKLAPPEN]
Local T$="asdfgh"
Local S$ = T[2..5]

***Ausgabe = dfg

Zunächst wird der String auf 5 Zeichen von links gekürzt "asdfg" und dann ab der Stelle 2 (=3.Zeichen) zu "dfg" gekürzt.
  • Zuletzt bearbeitet von Midimaster am Fr, März 11, 2011 12:41, insgesamt einmal bearbeitet

Lobby

BeitragFr, März 11, 2011 12:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Sehr schön, aber so neu scheint das im Hinblick auf BlitzMax dann doch wieder nicht zu sein. Es ist im Übrigen bereits dort längst empfohlen, auf die Befehle Left, Mid, Right usw., wie sie in BRL.Retro definiert werden, zu verzichten. Das mit den negativen Indizes ist zwar neu, aber der Rest scheint einfach von BlitzMax übernommen worden zu sein.
Fachbegriff: Slices
Es gefällt mir sehr gut, dass Monkey den Anwender hier dazu zwingt, mit Slices zu arbeiten. Das macht mir die Sprache dann doch zumindest ein kleines bisschen sympathisch.
TheoTown - Eine Stadtaufbausimulation für Android, iOS, Windows, Mac OS und Linux
 

Macintosh

BeitragFr, März 11, 2011 17:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Sagt mal gibts in "monkey" immernoch die zeichen wie: $ % # für string, int und float?
whäääää ;|

aber das mit den slices ist wie gesagt nichts neues.

hectic

Sieger des IS Talentwettbewerb 2006

BeitragFr, März 11, 2011 19:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich fasse zusammen:

So manche ''beschweren'' sich gegen BlitzBasic und Co. deswegen, weil BlitzBasic so blöde veraltete Eigenschaften hat, Schleifen und Bedingungen mit einem Next bzw. EndIf abschließen zu müssen. Begründung: Das würde zuviel Schreibarbeit abverlangen, ein einfaches } sei ja viel besser.

Nun hat BlitzBasic etwas - um Variablentypen einfach zu bestimmen - statt komplett :int, :float und :string auszuschreiben, eine sehr verkürzte Form %, # und $. Und wieder haben hier einige was zu meckern. Manchmal bin ich mir nicht sicher, ob die Leute überhaupt wissen was sie wollen...

- - -

Zum Thema: Ich freue mich wirklich über Monkey. Ich habe mir sogar zum Teil auch deswegen gestern ein Galaxy S geholt, um genau so etwas auch live testen zu können. Im Moment spiele ich aber eher so damit rum, als das ich was ernsthaftes mit mache. Nur zur Info, vorher hatte ich ein Simvalley INOX -Telefon für 26€ (die teuere Limited -Edition ''n° 28,656'' in weiß) gehabt. lol

Also mal sehen was wird...
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D

FireballFlame

BeitragSa, März 12, 2011 4:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Bist du sicher, dass das dieselben Leute sind?
Ich z.B. habe mich unter Garantie noch nie über EndIfs beschwert.
PC: Intel Core i7 @ 4x2.93GHz | 6 GB RAM | Nvidia GeForce GT 440 | Desktop 2x1280x1024px | Windows 7 Professional 64bit
Laptop: Intel Core i7 @ 4x2.00GHz | 8 GB RAM | Nvidia GeForce GT 540M | Desktop 1366x768px | Windows 7 Home Premium 64bit

coolo

BeitragSa, März 12, 2011 11:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Diese Shorthands sind meiner Meinung nach richtig hübsch. Vor allem bei booleans wirkt das Fragezeichen als eine sehr sinnhafte Sache:


Method isEmpty?()
end

sieht doch tausend mal hübscher aus als

Method isEmpty:Boolean()
end

Außerdem beeinflussen sie den Lesefluss nicht im Geringsten, da sie ja eben keine Doppeldeutigkeiten haben (Die Zeichen haben nur EINE Bedeutung) und nebenbei kann man wenn man sie nicht will einfach via Replace("%",":Int") ersetzten... (was wahrscheinlich Monkey intern auch macht).
http://programming-with-design.at/ <-- Der Preis ist heiß!
That's no bug, that's my project!
"Eigenzitate sind nur was für Deppen" -Eigenzitat

tft

BeitragSa, März 19, 2011 10:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

aber nicht jeder Programmiert in BMax ..... selbst wenn er es hat. Mir scheint der einstig in Monky recht einfach. Aber dieser Classen kram ...... ich glaube ich bin zu alt für diesen scheiss ....... aber ich werde trotzdem mal abklären in wie weit sich damit was machen läst.

Gruss TFT

PS Was ist "Slices"
TFT
https://www.sourcemagic.ch
Monkey,HTML5,CSS3,W 10 64 Bit, 32 GB Ram, GTX Titan, W8 ist Müll !!!!!!

FireballFlame

BeitragSo, März 20, 2011 2:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Slices sind genau das, was du im 1. Beitrag in den Codeboxen siehst.
Zitat:
Local T$="asdfgh"
Local S$ = T[2..5]
Also Ausschnitte aus Arrays bzw. Strings.

Klassen sind übrigens kein "Scheiß", sondern extrem nützlich bei jedem einigermaßen komplizierten Programm, wenn man seinen Code flexibel und verständlich halten möchte. Rolling Eyes
PC: Intel Core i7 @ 4x2.93GHz | 6 GB RAM | Nvidia GeForce GT 440 | Desktop 2x1280x1024px | Windows 7 Professional 64bit
Laptop: Intel Core i7 @ 4x2.00GHz | 8 GB RAM | Nvidia GeForce GT 540M | Desktop 1366x768px | Windows 7 Home Premium 64bit

Neue Antwort erstellen


Übersicht Andere Programmiersprachen Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group