Unbegrenzte Parameteranzahl

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Mok
BotHunter
Beiträge: 1484
Registriert: 26.12.2005 14:14
Computerausstattung: MSI GX780R
Intel Core i5-2410M
Nvidia GT 555M
Windows 7 Home Premium 64 bit
Wohnort:   

Unbegrenzte Parameteranzahl

Beitrag von Mok »

Tach auch!
bei der C-Funktion fprintf() kann man nach den *FILE und const char* Parametern ja beliebig viele Variablen angeben, die dann mit den %Zeichen ausgegeben werden. Geht sowas auch in PureBasic (ohne Arrays und Co.)?
Grüße, Mok
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Unbegrenzte Parameteranzahl

Beitrag von STARGÅTE »

leider nicht nativ.

ich hatte dazu ein Macr geschrieben:
DimP - Viele ProcedurParameter (max 16) als Array verwenden

Da kannst du dann unbestimmt viele Parameter übergeben (max 16) welche dann in der procedure als Array vorliegen.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
Josh
Beiträge: 1028
Registriert: 04.08.2009 17:24

Re: Unbegrenzte Parameteranzahl

Beitrag von Josh »

nur wenn du unendlich viele parameter mit standardwert reinschreibst.
wird aber etwas mühselig werden ^^

p.s.: keine gewähr, ob die anzahl der parameter in pb begrenzt ist
Benutzeravatar
Blackskyliner
Beiträge: 532
Registriert: 28.07.2005 00:54
Wohnort: /home/Blackskyliner/

Re: Unbegrenzte Parameteranzahl

Beitrag von Blackskyliner »

Ich hatte solche Probleme über ein temporäres Array gelöst... und dann bin ich halt das Array in der Funktion durchgegangen...
Warum gibt es eigentlich 100 tausend OOP Precompiler aber keinen Undefinierte Parameteranzahl, Precompiler?
Der dann einfach das Script durchgeht und schaut welcher Aufruf die meisten Parameter hat und dann entsprechend den Funktionskopf erstellt/anpasst...

MFG
Blackskyliner
Keine meiner Antworten ist endgültig, es kann passieren, dass ich den so eben geposteten Beitrag noch mehrmals ändere, um Doppelposts zu umgehen.
_________________
Purebasic Windows 7 x64 & Linux (Ubuntu 10.04LTS) 4.50[x64|x86] Nutzer
_________________
Projekte: YAED - Yet another Event Dispatcher
Benutzeravatar
CSHW89
Beiträge: 489
Registriert: 14.12.2008 12:22

Re: Unbegrenzte Parameteranzahl

Beitrag von CSHW89 »

Blackskyliner hat geschrieben:Ich hatte solche Probleme über ein temporäres Array gelöst... und dann bin ich halt das Array in der Funktion durchgegangen...
Warum gibt es eigentlich 100 tausend OOP Precompiler aber keinen Undefinierte Parameteranzahl, Precompiler?
Der dann einfach das Script durchgeht und schaut welcher Aufruf die meisten Parameter hat und dann entsprechend den Funktionskopf erstellt/anpasst...

MFG
Blackskyliner
Interressant dass du das ansprichst. Ich arbeite grad an einen solchen PreCompiler. Allerdings arbeitet er mit Listen:

Code: Alles auswählen

Procedure test(a.i, b.i...)
EndProcedure
test(1)
test(1,2)
test(1,2,3)
wird zu:

Code: Alles auswählen

Procedure test(a.i, List b.i())
EndProcedure
NewList test_1.i(): test(1, test_1()): FreeList(test_1())
NewList test_2.i(): AddElement(test_2()): test_2() = 2: test(1, test_2()): FreeList(test_2())
NewList test_3.i(): AddElement(test_3()): test_3() = 2: AddElement(test_3()): test_3() = 3: test(1, test_3()): FreeList(test_3())
Bild Bild Bild
http://www.jasik.de - Windows Hilfe Seite
padawan hat geschrieben:Ich liebe diese von hinten über die Brust ins Auge Lösungen
Benutzeravatar
Blackskyliner
Beiträge: 532
Registriert: 28.07.2005 00:54
Wohnort: /home/Blackskyliner/

Re: Unbegrenzte Parameteranzahl

Beitrag von Blackskyliner »

Na da bin ich dann doch mal gespannt :allright:
Werd mich in einem Monat vielleicht auch mal an einer Implementierung versuchen, aber erst kommen Semesterprüfungen :)
Keine meiner Antworten ist endgültig, es kann passieren, dass ich den so eben geposteten Beitrag noch mehrmals ändere, um Doppelposts zu umgehen.
_________________
Purebasic Windows 7 x64 & Linux (Ubuntu 10.04LTS) 4.50[x64|x86] Nutzer
_________________
Projekte: YAED - Yet another Event Dispatcher
Antworten