Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Strings an Funktionen und zurück

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
PMedia



Anmeldungsdatum: 14.08.2006
Beiträge: 2847

BeitragVerfasst am: 20.08.2006, 09:49    Titel: Strings an Funktionen und zurück Antworten mit Zitat

Wie übermittle ich einen String an eine Funktion?
Ich verzweifle hier schon fast... er (der compiler für Windows) ist der Meinung, der Typ stimmt nicht überein... hab die aktuellste Version.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 20.08.2006, 10:52    Titel: Antworten mit Zitat

Hallo.

Code:
Declare Function RKommtVor (Zeichenkette as String) As Uinteger

PRINT RKommtVor("Lötkolben")
PRINT RKommtVor("Rasenmäher")
SLEEP: END


Function RKommtVor (Zeichenkette as String) As Uinteger
If Instr(UCASE$(Zeichenkette),"R") THEN
 RKommtVor=1
Else
 RKommtVor=0
End If
End Function


Zitat:
Ein Computer macht nie Fehler! - nur die Programmierer!

Btw, auch die machen Fehler: http://de.wikipedia.org/wiki/FDIV-Bug durchgeknallt

Viele Grüße!
Sebastian
_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!


Zuletzt bearbeitet von Sebastian am 20.08.2006, 10:54, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 20.08.2006, 10:54    Titel: Antworten mit Zitat

Welchen der vielen möglichen Wege hast du denn gewählt?
Wenn der Compiler etwas zu bemängeln hat, wäre ein Stückchen Quellcode nicht schlecht..
(..am Besten der Teil, den der Compiler bemängelt happy)
..sonst erhältst du mglw. nur Verweise auf die Befehlsreferenz.
Gruß
ytwinky
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 20.08.2006, 10:56    Titel: Antworten mit Zitat

Code:
If Instr(UCASE$(Zeichenkette),"R") THEN
 RKommtVor=1
Else
 RKommtVor=0
End If

umstand ftw happy
Code:
Return Instr(ucase(zeichenkette),"R") <> 0

_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 20.08.2006, 11:01    Titel: Antworten mit Zitat

MisterD hat Folgendes geschrieben:
Code:
Return Instr(ucase(zeichenkette),"R") <> 0
Ist aber nicht ganz, was Sebastian wollte:
Code:
Return Abs(Instr(ucase(zeichenkette),"R") <> 0)
triffts eher grinsen
Gruß
ytwinky
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 20.08.2006, 11:12    Titel: Antworten mit Zitat

Ach du meine Güte... lachen Ich hab halt noch den QB-Stil drin... zwinkern
_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
PMedia



Anmeldungsdatum: 14.08.2006
Beiträge: 2847

BeitragVerfasst am: 20.08.2006, 11:16    Titel: Antworten mit Zitat

So schauts bei mir aus...
soll 'ne 3D-Engine über GL werden, aber irgendwo haperts da noch (hab gestern openGL verstanden!!!! (Lange Zeit gerätselt...)

Aber auch erstmal Danke für die Sources... werd sie mal durchsehen...

Code:
Declare function glLoadVertices$(filename as string) as string
Declare function glLoadMesheses$(filename as string) as string
Declare sub glBuild(mesh as string, vertices as string)
Declare sub render.prepare()
Declare sub render()

function glLoadVertices$(filename as string) as string
    'PS: der Code kommt noch...
    return "abc"
end function

function glLoadMeshes$(filename as string) as string
    return "abc"
end function

sub glBuild(mesh as string, vertices as string)
   
end sub

...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 20.08.2006, 11:29    Titel: Antworten mit Zitat

Die Dollarzeichen brauchst du nicht, wenn du am Ende "as string" festlegst. Daran hat's gelegen.
Code:
Declare function glLoadVertices(filename as string) as string
Declare function glLoadMesheses(filename as string) as string
Declare sub glBuild(mesh as string, vertices as string)
Declare sub render.prepare()
Declare sub render()

function glLoadVertices(filename as string) as string
    'PS: der Code kommt noch...
    return "abc"
end function

function glLoadMeshes(filename as string) as string
    return "abc"
end function

sub glBuild(mesh as string, vertices as string)
   
end sub

_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 20.08.2006, 11:30    Titel: Antworten mit Zitat

PMedia hat Folgendes geschrieben:
Code:
Declare function glLoadVertices$(filename as string) as string..
Die Funktion glLoadVertices$(..) ist durch das '$' am Ende bereits als String deklariert..
'zur Sicherheit' hast du aber noch ein 'As String' drangehängt..
Ich wußte nicht, daß das geht..
..daß das sinnvoll ist..
..daß der Compiler das nicht bemängelt..
..oder ist das einfach nur doppeltgemoppelt und fakehrt?
[Edit]
Schade, Sebastian war schneller..
..Flatrate scheint doch Vorteile zu haben lachen
Gruß
ytwinky
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..

Zuletzt bearbeitet von ytwinky am 20.08.2006, 11:40, insgesamt 2-mal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
PMedia



Anmeldungsdatum: 14.08.2006
Beiträge: 2847

BeitragVerfasst am: 20.08.2006, 11:32    Titel: Antworten mit Zitat

Also jetzt blick ich gar nichts mehr.
Der Code ist doch identisch...
hier meine Fehlermeldungen:


http://pmediaapps.piranho.com/FBfehla.png (wenn das Bild nicht angezeigt wird)

...
Wer sich wundert:
Das Programm ist modular aufgebaut.
Da ist das Hauptprogram, die ezGL.bi, die mir eigentlich OpenGL erleichtern soll - letztendlich jedoch doch nur aliase irgendwo verwendet, und arwing.mod, auch eine Include, die das Model 'Arwing' handled...

Das Modell soll zunächst in einen String geladen werden, und von da immer wieder neu abgerufen werden...
Soll ein StarFox-Fangame (Weltraumshooter) zum Schluss werden... mal sehn, was draus wird grinsen

[edit]
Sorry, hatte erst den Editor geöffnet, sodass ich eure Antworten nicht gesehen hatte. Nein, das $ hatte ich erst nachträglich eingefügt, als "Workaround", 's ging auch vorher net.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 20.08.2006, 11:36    Titel: Antworten mit Zitat

PMedia hat Folgendes geschrieben:
Wer sich wundert
ja, ich..
der Link linkt nich grinsen
Gruß
ytwinky
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
PMedia



Anmeldungsdatum: 14.08.2006
Beiträge: 2847

BeitragVerfasst am: 20.08.2006, 11:39    Titel: Antworten mit Zitat

Dann klickste mal mit rechts auf das Bild (wenns als fehlend markiert wird) und wählst Bild anzeigen...

Hab die Dollarzeichen wieder rausgenommen, jetzt mault er wieder was von "Invalid Datatype"

Ich übermittel Strings, was soll da verkehrt sein?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
PMedia



Anmeldungsdatum: 14.08.2006
Beiträge: 2847

BeitragVerfasst am: 20.08.2006, 11:48    Titel: Antworten mit Zitat

Egal, sh... auf die "Geheimhaltung", hier der aktuelle Source:

Hauptprogramm:
http://pmediaapps.piranho.com/starfox.engine.bas
Eigentliche Grafikengine?
http://pmediaapps.piranho.com/ezGL.bi
Arwing-Modell-Definitionen (aber noch kein Modell)
http://pmediaapps.piranho.com/arwing.mod

Die vermaldeite Fehlermeldung
http://pmediaapps.piranho.com/nochnfehla.png

Bin ich blind, oder warum seh ich den Fehler nicht?

[edit] also irgendwas stimmt mit Piranho heute net...

ezGL.inc:
Code:
'$include: 'GL/gl.bi'
'$include: 'GL/glu.bi'

Declare function glLoadVertices(filename as string) as string
Declare function glLoadMesheses(filename as string) as string
Declare sub glBuild(mesh as string, vertices as string)
Declare sub render.prepare()
Declare sub render()

function glLoadVertices(file as string) as string
    return "abc"
end function

function glLoadMeshes(file as string) as string
    return "abc"
end function

sub glBuild(mesh as string, vertices as string)
   
end sub

sub glINIT
    screen 18, 32, , 2
   
    'Viewport:
    glViewport 0, 0, 640, 480
    '?
    glMatrixMode GL_PROJECTION
    '?
    glLoadIdentity
    'Kamera einstellen   
    gluPerspective 45.0, 640.0/480.0, 0.1, 100.0
    'Kameramodus?
    glMatrixMode GL_MODELVIEW
    '?
    glLoadIdentity

    'Shader-Modus
    glShadeModel GL_SMOOTH
    'Löschen-Farbe
    glClearColor 0.0, 0.0, 0.0, 1.0
    'Löschen-Dichte (?)
    glClearDepth 1.0
    '?
    glEnable GL_DEPTH_TEST
    '?
    glDepthFunc GL_LEQUAL
    '?
    glHint GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST
end sub

sub render.prepare
    glClear GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT
end sub

sub render
    flip
end sub


Starfox.engine.bas
Code:
''
''  STARFOX GAME CORE
''    alias 'engine'
''
option explicit

dim key as string

dim shared detail as integer
dim shared file as string

#include once "ezGL.bi"    'Eazy GL - by me ;-)
#include once "fbgfx.bi"   'for Scan code constants
#include once "arwing.mod" 'ARWING MODEL

arwing.pz = -600

detail = 100

glInit()

WindowTitle "StarFox"

do
  render.prepare()
 
  render.arwing() 
 
  render()
   
  if  MULTIKEY(SC_LEFT) then
     arwing.rx -= 1
  elseif MULTIKEY(SC_RIGHT) then
     arwing.rx += 1
  endiF
 
  if  MULTIKEY(SC_UP) then
     arwing.ry -= 1
  elseif MULTIKEY(SC_DOWN) then
     arwing.ry += 1
  endiF
 
  if multikey(SC_PLUS) then
      arwing.sx += 1 / detail
      arwing.sy += 1 / detail
      arwing.sz += 1 / detail
  elseif multikey(SC_MINUS) then
      arwing.sx -= 1 / detail
      arwing.sy -= 1 / detail
      arwing.sz -= 1 / detail
  endif

loop until MULTIKEY(SC_ESCAPE)
end


Arwing.mod:
Code:
'arwing model

#include once "ezGL.bi"    'Eazy GL - by me ;-)
#include once "fbgfx.bi"   'for Scan code constants
dim shared detail as integer
dim shared file as string

dim shared arwing.px, arwing.py, arwing.pz as single 'Position Bytes
dim shared arwing.rx, arwing.ry, arwing.rz as single 'Rotation Bytes
dim shared arwing.sx, arwing.sy, arwing.sz as single 'Size Bytes

dim shared arwing.vertice,arwing.mesh as string   'Arwing


arwing.sx = 1.00
arwing.sy = 1.00
arwing.sz = 1.00

file = "arwing.vtc"

arwing.vertice  = glLoadVertices$("sd")
'arwing.mesh     = glLoadMesh("arwing.msh")

sub render.arwing
    '? (evtl. neues Mesh erzeugen)
    glLoadIdentity
   
    'Position
   glTranslatef arwing.px / detail, arwing.py / detail, arwing.pz / detail
   
    'Rotation
   glRotatef arwing.rx, 0, 1, 0
    glRotatef arwing.ry, 1, 0, 0
    glRotatef arwing.rz, 0, 0, 1
   
    'Angaben aus Vorder-Ansicht!
   
   glBegin GL_TRIANGLES
        'set up triangles
       
      'glBuild(arwing.vertice,arwing.mesh)
       
   glEnd
   
    glBegin GL_QUADS
        'set up quadri's
   glEnd
end sub


Die Fehlermeldung:

arwing.mod(5) : error 4: Duplicated Definiton, Detail
dim shared detail as integer

arwing.mod(21) : Error 26:invalid data types
arwing.vertice = glLoadVertices$("sd")
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 20.08.2006, 12:16    Titel: Antworten mit Zitat

Hi,
Die Fehlermeldung:

arwing.mod(5) : error 4: Duplicated Definiton, Detail
dim shared detail as integer
(in der Starfox.engine.bas auch definiert, in arwing.mod raus)

arwing.mod(21) : Error 26:invalid data types
arwing.vertice = glLoadVertices$("sd") (weg mit dem $-Zeichen)

Gruss Volta
_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.


Zuletzt bearbeitet von volta am 20.08.2006, 12:21, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
PMedia



Anmeldungsdatum: 14.08.2006
Beiträge: 2847

BeitragVerfasst am: 20.08.2006, 12:20    Titel: Antworten mit Zitat

Hab's geändert und... böse jetzt streicht er fast alles als falsch an...
irgendwas stimmt da nich, ich fang am besten noch mal an...

Trotzdem danke für eure Hilfe...
Ich meld mich, wenn's fertig ist - oder wenn's wieder Probleme gibt...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 20.08.2006, 12:21    Titel: Antworten mit Zitat

Mein Vorschlag für Änderungen an Arwing.Mod:
Code:
'dim shared detail as integer
'dim shared file as string

dim shared arwing.vertice as string,arwing.mesh as string   'Arwing
..läßt sich auf alle Fälle kompilieren..
Gruß
ytwinky
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
PMedia



Anmeldungsdatum: 14.08.2006
Beiträge: 2847

BeitragVerfasst am: 20.08.2006, 12:35    Titel: Antworten mit Zitat

Ich will ja nicht arwing.mod compilieren, sondern das Hauptprogramm (.bas), und da brauch ich diese Vars....

Ist aber egal, ich fang nochmal komplett von vorn an...
mal sehn, was draus wird zwinkern
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 21.08.2006, 11:20    Titel: Antworten mit Zitat

ytwinky hat Folgendes geschrieben:
MisterD hat Folgendes geschrieben:
Code:
Return Instr(ucase(zeichenkette),"R") <> 0
Ist aber nicht ganz, was Sebastian wollte:
Code:
Return Abs(Instr(ucase(zeichenkette),"R") <> 0)
triffts eher grinsen
Gruß
ytwinky

mpf deklarier die funktion halt als integer, true = -1 sogesehen, kA wieso sebastian mit uinteger angefangen hat..
_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 21.08.2006, 18:18    Titel: Antworten mit Zitat

Hihihi, wenn ich drei Smileys gemacht hätte, wäre deutlich geworden, daß ich
es nicht ganz ernst gemeint hab', aber dann wäre mglw. ein Einwand von
'Übermäßigem Gebrauch von Smileys' gekommen..
Sei's drum, wir habens beide überlebt happy
nbs grinsen
Gruß
ytwinky
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz