Var - Call by Reference

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

ToeB

Betreff: Var - Call by Reference

BeitragMi, Dez 15, 2010 21:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Es gibt ja in Blitzmax die Möglichkeit, Variablen auch als Zeiger für deren Speicherplatz zu übergeben (Var). Aber irgentwie klappt das bei Arrays nicht, ich weiß nicht worans liegt :
BlitzMax: [AUSKLAPPEN]
Function List_Create( Var Array:Int[], Zahl:Int )
Array = New Int[ Zahl ]
For Local i:Int = 0 To Zahl-1
Array[ i-1 ] = i
Next
End Function


Was mache ich Falsch ? Oder kann ich Arrays nur mit einer Festen größe in Bezug auf Var nehmen ?

mfg ToeB
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

Thunder

BeitragMi, Dez 15, 2010 21:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Das 'Var' wird hinten angestellt:
BlitzMax: [AUSKLAPPEN]
Function List_Create( Array:Int[] Var , Zahl:Int )
Array = New Int[ Zahl ]
For Local i:Int = 0 To Zahl-1
Array[ i-1 ] = i
Next
End Function


mfg Thunder
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit

ToeB

BeitragMi, Dez 15, 2010 21:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Oh Embarassed danke Wink

mfg ToeB
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

ToeB

BeitragMi, Dez 15, 2010 21:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Sry für Doppelpost aber ich hab noch ne Andere Frage :

Kann man den "OutPut" Löschen ? Weil ich wollte für Informatik ein kleines Programm schreiben, wollte aber nicht mit dem Grafik-Fenster arbeiten, sondern direkt im Output, da schreibt er aber immer rein welche Module er grad ausfürht etc. Kann ich das iwie "Clearen" ?

mfg ToeB
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

ChaosCoder

BeitragMi, Dez 15, 2010 22:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Eine Ausgabe löschen kann man nicht. Aber du kannst den Inhalt des Kommandozeilenfensters löschen und zwar mit dem Windows-Befehl "Cls" Wink

Sprich:Code: [AUSKLAPPEN]
Print "1"
system_("cls")
Print "2"
(Code ist leider ungetestet, sollte aber hoffentlich funzen Embarassed )
Projekte: Geolaria | aNemy
Webseite: chaosspace.de

ToeB

BeitragMi, Dez 15, 2010 22:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Nope geht leider nicht Sad Danke trotzdem !


mfg ToeB
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

Thunder

BeitragMi, Dez 15, 2010 22:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn der Output einzeilig ist (z.B. für einen Ladebalken aus Sternen oder ähnliches - sollte auch für Text geeignet sein), kannst du mit "~r" an den Anfang der Zeile zurückspringen und diese wieder überschreiben. Sollte aber der vorangegangene Output länger sein, als der aktuelle, musst du eine gewisse Zahl an Stellen (mit Leerzeichen) überschreiben.

Hier ein Beispiel.
BlitzMax: [AUSKLAPPEN]
SuperStrict
Framework brl.blitz

Local i%,j%
Local text$[]=["Lade Kernkomponenten...","Prüfe auf neue Version...","Lade Module..."]
Local mlen%=Max(text[0].length,Max(text[1].length,text[2].length))

WriteStdout "~n~tEine Simulation eines Ladeprogramms~n~n"
For i=0 Until 42
WriteStdout "~r ["
For j=0 To i
WriteStdout "*"
Next
For j=i+1 Until 42
WriteStdout " "
Next
WriteStdout "] "
WriteStdout text[i/14]
For j=1 To mlen-text[i/14].length
WriteStdout " "
Next
Delay 100
Next
WriteStdout "~nFertig!~n"
End


mfg Thunder

Edit: Hier eine Version für Windows, die den ganzen cmd-Screen löschen sollte:
BlitzMax: [AUSKLAPPEN]
SuperStrict
Framework brl.blitz
Import brl.system

Local k%,i%
clear_cmd
For k=1 To 3
For i=1 To 10
WriteStdout "Modul "+k+"."+i+"~n"
Delay 100
Next
Delay 500
clear_cmd
Next
End

Function clear_cmd()
system_("cmd.exe /C cls")
EndFunction
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group