Seite 1 von 1

ein speicherbuffer als parameter?

Verfasst: 15.04.2007 14:39
von Knight_Rider_2000
hi,
ich habe folgenes Problem, ich möchte eine Prozedur programmieren die ein Speicherbereich von IncludeBinary als datei speichert. Wie muss ich den parameter schreiben? So?:

Code: Alles auswählen

?char
oder so?

Code: Alles auswählen

*char
oder so?

Code: Alles auswählen

@char
oder wie sonst?

Verfasst: 15.04.2007 14:46
von Kaeru Gaman
ich nehme an, char ist dein Label?

Code: Alles auswählen

DataSection
char:
IncludeBinary "whatever.who"
EndDataSection
..dann liefert dir ?char die adresse des Labels.

Verfasst: 15.04.2007 15:51
von Knight_Rider_2000
so soll es sein

Code: Alles auswählen

Procedure copyfromlabel(labeladresse,path.s)
die labeladresse soll dann selbst eintippbar sein besonders wenn man mehrere labels hat

Verfasst: 15.04.2007 16:30
von Kaeru Gaman
die labeladresse kannst du nur in den code direkt eingeben, sie ist keine variable.
die labels werden beim kompilieren umgewandelt, im fertigen programm sind sie nicht mehr vorhanden.

du kannst also z.b. so vorgehen:

Code: Alles auswählen

Procedure DoIt( *Label )
EndProcedure

DoIt(?Label1)
DoIt(?Label2)

DataSection
Label1:
IncludeBinary "File1.dat"
Label2:
IncludeBinary "File2.dat"
EndDataSection
wenn du aber zur laufzeit einen labeltext in ein gadget oder eine console eingeben willst: geht nicht.
du könntest nur zur compilezeit eine tabelle mit den labels erstellen,
die du dann zur laufzeit anwählen kannst.

Code: Alles auswählen

Dim Labels(4)
Restore Table
For n=0 To 4
  Read Labels(n)
Next

Procedure DoIt( *Label )
EndProcedure

nummer = EingabeProc() ; irgendeine möglichkeit, dass der benutzer eine zahl eingibt

DoIt( Labels(nummer) )

DataSection
  Table:
    Data.l ?Label1, ?Label2, ?Label3, ?Label4, ?Label5
  
  Label1:
    IncludeBinary "File1.dat"
  Label2:
    IncludeBinary "File2.dat"
  Label3:
    IncludeBinary "File3.dat"
  Label4:
    IncludeBinary "File4.dat"
  Label5:
    IncludeBinary "File5.dat"
EndDataSection