Problem mit String-array in Function

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

 

Ticha

Betreff: Problem mit String-array in Function

BeitragDi, Feb 20, 2007 22:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi leutz, hab mal wieddern prob Embarassed Crying or Very sad

Mit einer MySQL auslese lade ich in einer Funtion die Daten einer Tabbelle in einen arry. Dieser ist vom Typ String.

Danach möchte ich einen part aus dem array in einer anderen funktion in einen string hinzufügen (" " + String$ + " "). Aber dann sagt mir der compiler, dass "Expression int cannot be indexed" . Muss ich den array in die function miteinbringen, obwohl er global deklariert ist? Wenn ja, wie mach ich das, denn wenn ich function(array$[x,y]) eingebe, gibt er mir den fehler aus, dass eine klammer zu viel drin ist.

hier mal der code der funktionen

funktion 1
Code: [AUSKLAPPEN]

function load_user_schiffe()


   Query = "SELECT * FROM `schiff` WHERE besitzer ='"+ user[0,1] +"'"
   Result = MySQL.Query(Query)
   If Not Result Then
      Print("Error: Query failed")
      Print(" "+MySQL.GetError())
      MySQL.Close()
      End
   EndIf
   

     Local rows:Int = String(result.Rows).toint()
   Print(String(Rows)+" Entrys:")

   Local i%,k%=0

   Print( "rows:"+rows)
   Global user_schiffe:String[rows,50]
   For Row = EachIn Result
     For i = 0 To 49
        user_schiffe[k,i]=Row.GetString(i)
     Next
     k=k+1
   Next
   

   
   For k= 0 To rows-1
     For i = 0 To 49
       Print ("-" + user_schiffe[k,i] + "-")
     Next
   Next
  Result.Free()

EndFunction



funktion 2

Code: [AUSKLAPPEN]

Function list_schiffe()
   Local lx%, ly%
   For i = 0 To 5
      SetColor(255,255,255)
      'DrawText("|" + user_schiffe[i,1] + "|" + user_schiffe[i,2] + "|",lx,ly)
      ly = ly + 10
    Next
   SetColor(colora,colorb,colorc)
EndFunction



wo ist das problem dabei?
 

Dreamora

BeitragMi, Feb 21, 2007 10:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Dein Problem ist, dass dein Array nicht global ist.

Globale Daten kannst du NICHT in Funktionen deklarieren.
Eine global in einer Funktion ist nichts anderes als ein Objekt das nicht gelöscht wird und beim nächsten Aufrufen der Funktion noch ihren alten Wert (e) haben wird.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

Ticha

BeitragMi, Feb 21, 2007 21:18
Antworten mit Zitat
Benutzer-Profile anzeigen
das erklärt einiges bei meinen fehlermeldungen ^^

das problem ist nur, wie deklariere ich einen globalen array, wenn mir vor dem funktionsaufruf noch nicht klar ist, wieviele einträge der array haben wird?

simi

BeitragMi, Feb 21, 2007 21:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Man kann das Array während der Laufzeit vergrössern... Die Daten bleiben erhalten.... Sowas nennt man Slices.....

-> https://www.blitzforum.de/foru...hp?t=12028
 

Ticha

BeitragDo, Feb 22, 2007 14:06
Antworten mit Zitat
Benutzer-Profile anzeigen
ok

ich häng mich da mal dran

danke Smile

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group