Deutsch
Bugs und vermeintliche

Aktuelle Version: XProfan X4

Var und Stringarray

 

Jörg
Sellmeyer
Das Beispiel aus der Hilfe funktioniert nicht, wenn man das Array mit Var deklariert.
CLS
var test$ = "Das ist ein Test"
Var A$[] = Explode(test$, " ")

WhileLoop 0, SizeOf(A$[]) - 1

    Print A$[&loop]

EndWhile

WaitInput
 
XProfan X3
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
14.05.2018  
 




Jörg
Sellmeyer
Ich ergänz das mal, in der Hoffnung, dass das in der nächsten Version irgendwie behoben wird.
Die Zuweisung per Var funktioniert zwar, wenn direkt Strings übergeben werden aber nicht, wenn mit Explode eine Stringfunktion zum Füllen des Arrays verwendet wird.
CLS
Declare aTest$[]
var test$ = "Das ist ein Test"
aTest$[] = Explode(test$," ")
Var String aTest2[] = Explode(test$, " ")
Var String Namen[] = "Maria", "Karl", "Herbert","Heinrich"
print SizeOf(aTest2[])
Print aTest2[0]'hier scheint nur die Anzahl der Teilstrings anzukommen
print

WhileLoop 0, SizeOf(Namen[]) - 1

    Case SizeOf(aTest$[]) > 0:Print aTest$[&loop]
    Case SizeOf(aTest2[]) > 1:Print aTest2[&loop]
    Case SizeOf(Namen[]) > 0:Print Namen[&loop]
    Print

EndWhile

WaitInput
 
XProfan X4
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
vor 21 Tagen  
 




Michael
W.
In irgend einem Forenbeitrag stand mal, das hier "nur statische Werte" zugewiesen werden können.
Bei meinen Tests ging aber so einiges darüber hinaus.

Allerdings habe ich das immer im Oberstübchen behalten und, wenn etwas nicht klappte, wieder auf alt umgestellt.

Genau wie bei PType$(), das seine Werte nach dem ersten Funktionsaufruf verliert. Ja, irgendwann passiert das - aber nie beim ersten Funktionsaufruf.
Mein Workaround bei PType:

Declare int cnt,string PT
cnt = %PCount
PT = ""
WhileLoop 1,cnt
PT = PT + if(&loop>1,"|","") + PType$(&loop)
EndWhile

'das Ganze als Einzeiler in den Funktionen wo ich verschiedene Parameterlisten brauche
Declare int cnt,string PT:cnt = %PCount:PT = "":WhileLoop 1,cnt:PT = PT + if(&loop>1,"|","") + PType$(&loop):EndWhile
'dann habe ich mit SubStr$(PT,paridx,"|") den Wert parat.

Und die alte Form bei Var ist halt die Aufteilung in Deklaration und Zuweisung.
 
System: Windows 8/10, XProfan X4
Programmieren, das spannendste Detektivspiel der Welt.
vor 17 Tagen  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

658 Betrachtungen

Unbenanntvor 0 min.
Thomas ZielinskiGestern (11:27)
R.Schneider vor 4 Tagen
Georg Teles vor 4 Tagen
Uwe Lang vor 5 Tagen
Mehr...

Themeninformationen

Dieses Thema hat 2 Teilnehmer:

Jörg Sellmeyer (2x)
Michael W. (1x)


AGB  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Impressum  |  Mart  |  Support  |  Suche

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie