Funktionen...

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

 

Compix

Betreff: Funktionen...

BeitragDi, Jun 21, 2011 18:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo Wink
Ich wollte als erstes kleines "Test-Script" von BlitzMax etwas -denke ich mal- einfaches programmieren.
Dabei habe ich an eine Art Zweiwegverschlüsselung gedacht, von welcher ich weiß, wie ich sie aufbauen will, doch ich es nicht schaffe denn ich bekomme immer einen Fehler wenn ich eine Funktion schreiben will, die einen String erhält und ausgeben soll..
BlitzMax: [AUSKLAPPEN]
Function Encoding:String(str)
Print str
Return str
End Function

Encoding("Keks")

"Unable to convert from 'String' to 'Int'"

Es war jedoch nie vorgesehen das daraus ein integer wird Wink

Und wo ich schon dabei bin wollte ich auch nochmal den passenden Titel nutzen um zu fragen, wie ich folgendes lösen könnte:
Das Wort "Keks" soll nun aufgelößt werden in "K, e, k und s" damit ich jeden Buchstaben sogesehen "austauschen" kann mit einem anderen.
Is zwar eine doofe Verschlüsselung, aber für mich reicht sie zum Anfang Wink


Und nochetwas: Weiß jemand wieso Blitzbasic.com nicht erreichbar ist?

M0rgenstern

BeitragDi, Jun 21, 2011 18:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Es war jedoch nie vorgesehen das daraus ein integer wird Wink


Doch war es sehr wohl, undzwar da:
BlitzMax: [AUSKLAPPEN]
Function Encoding:String(str)

Genauer: Der Fehler liegt am Parameter.
Wenn du einfach nur str angibst, dann wird das von BMax automatisch als Integer behandelt.
Du musst schon folgendes schreiben:
BlitzMax: [AUSKLAPPEN]
Function Encoding:String(str:String)


Ich würde dir raten am Anfang deiner Programme immer das Wörtchen BlitzMax: [AUSKLAPPEN]
SuperStrict
einzufügen. Dann können solche Fehler nicht passieren, da du dann gezwungen bist jeder Variable und jedem Parameter explizit einen Typen zuzuweisen.

Lg, M0rgenstern.

Ps: BlitzMax ist keine Scriptsprache, darum schreibt man mit ihr auch keine Scripte.
 

Compix

BeitragDi, Jun 21, 2011 18:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok, danke dafür Smile
Das mit dem Script habe ich mir von PHP angewöhnt und bekomme es einfach nicht raus.. Diesen Fehler habe ich in dem Forum hier schon zich male gemacht Wink
Danke jedoch nochmal für den Hinweis Smile Irgendwann lerne ich es. (hoffe ich mal Wink )
Ich wäre jetzt noch super glücklich wenn mir jemand sagen könnte wie ich das Zweite Problem lösen könnte, oder wie ich zumindest schonmal die Zeichenlänge von Strings und so rauslesen kann.

Gibt es eigentlich eine zusammenfassung von Funktionen in BMax? Dieses Ding am rechten Rand hat mir zu viele Kategorien Wink

EDIT: Ok, wusste nicht das BlitzBasic Befehle auch bei BlitzMax gehen Very Happy

Xeres

Moderator

BeitragDi, Jun 21, 2011 18:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Die Dokumentation mag nicht besonders genial sein, aber reingucken solltest du in jedem Fall.
Möglichkeiten gibt es viele:
BlitzMax: [AUSKLAPPEN]
SuperStrict

Local s:String = "Keks"

For Local i:Int = 0 Until s.Length
Print(i + ": " + Chr(s[i]))
Next

Print("- - - - -")
Print("Slices:")

Print(s[..1])
Print(s[1..2])
Print(s[2..3])
Print(s[3..])

Print("- - - - -")
Print("Retro:")

Print(Left(s, 1))
Print(Mid(s, 2, 1))
Print(Mid(s, 3, 1))
Print(Right(s, 1))
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)
 

PhillipK

BeitragMi, Jun 22, 2011 9:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Xeres hat Folgendes geschrieben:
Die Dokumentation mag nicht besonders genial sein, aber reingucken solltest du in jedem Fall.
Möglichkeiten gibt es viele:
BlitzMax: [AUSKLAPPEN]
SuperStrict

Local s:String = "Keks"

For Local i:Int = 0 Until s.Length
Print(i + ": " + Chr(s[i]))
Next

Print("- - - - -")
Print("Slices:")

Print(s[..1])
Print(s[1..2])
Print(s[2..3])
Print(s[3..])

Print("- - - - -")
Print("Retro:")

Print(Left(s, 1))
Print(Mid(s, 2, 1))
Print(Mid(s, 3, 1))
Print(Right(s, 1))


Ich persönlich bevorzuge es, ohne slices direkt die einzelnen Asciicodes auszulesen - dazu behandelt man den String einfach wie einen Array.

BlitzMax: [AUSKLAPPEN]
Local str:String = "Keks"

For Local i:Int = Until Len(str)
Print str[i]
Next


möchte man stattdessen trotzdem das Zeichen geprintet haben, nutzt man einfach Chr()

Also
BlitzMax: [AUSKLAPPEN]
Local str:String = "Keks"

Print str[0] '75 = Asciicode für zeichen 'K'
Print Chr(str[0]) 'Großes K

Print str[1] '101 = Asciicode für zeichen 'e'
Print Chr(str[1]) 'kleines e

Print str[2] '107 = Asciicode für zeichen 'k'
Print Chr(str[2]) 'kleines k

Print str[3] '115 = Asciicode für zeichen 's'
Print Chr(str[3]) 'kleines s


Ob die kommentare jetzt 100% passen weiß ich nicht, ich habe das ganze lediglich aus dem Kopf gebaut und mit einer Ascii-Zeichenliste abgeglichen^^ Aber die logik stimmt Wink
 

Compix

BeitragDo, Jun 23, 2011 12:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok, danke für die Antworten Very Happy

Nun wollte ich noch etwas wissen wegen BlitzGUI :
Ich habe es runtergeladen und versuche es aktuell zu verwenden.
Jedoch bekomme ich den Fehler das das Interface dafür nicht geladen werden kann. Wie kann ich es zum laufen bekommen?

Xeres

Moderator

BeitragDo, Jun 23, 2011 13:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Meinst du MaxGUI? In jedem Falle: Module müssen ggf. kompiliert werden -> Build Modules und die passende Dokumentation solltest du auch generieren -> Rebuild Documentation.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)
 

Compix

BeitragDo, Jun 23, 2011 13:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Build Modules ist grau unterlegt.
Da kann ich nix mit machen :S

Xeres

Moderator

BeitragDo, Jun 23, 2011 13:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Schon hier nachgeschlagen?
Arrow Anleitung und Hinweise zur Installation von Modulen
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Mr.Hyde

Newsposter

BeitragDo, Jun 23, 2011 13:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Dann hast du wohl MinGW nicht installiert. Ich gehe mal davon aus, dass du Windows nutzt.

https://www.blitzforum.de/foru...ight=mingw

Das benötigst du um Module kompilieren zu können.
BBP News RSS | Chaos Interactive | Watanien 2 Screens, Infos und Download | Watanien 2 Worklog | PuzzleMasters
http://abgeordnetenwatch.de - http://www.regierungs-beratung.de - Der Regierung auf die Finger schauen

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group