Deutsch
Wünsche und Anregungen

Wunsch: DeleteObject

 
- Seite 1 -



Jörg
Sellmeyer
DeleteObject sollte mehrere Parameter verarbeiten können.
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
15.03.2012  
 



 
- Seite 2 -


Mir bekannt - meine aber:

var int meinArray[]
var hashes deinArray[]
meinArray=array(10,20,30,40)
deinArray=array(50,meinArray,60)
 
02.11.2014  
 




RGH
Ok, das geht so nicht. Im Übrigen habe ich gerade fest gestellt, dass Hash-Arrays von VAR noch nicht unterstützt werden. Habe ich für die nächste Lieferung nachgerüstet. Dann geht zumindest Folgendes:
set("HashListDel", "=>")
var hash meinArray[]="puste=>kuchen","waidmanz=>hai"

Über die Sache mit der Arrayfunktion muss ich noch mal nachdenken.

Gruß
Roland
 
XProfan X2
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
02.11.2014  
 




RGH
Eine Arrayfunktion müsste natürlich noch ein Kennzeichen für den Typ des Arrays enthalten, etwa array("W", Widstring1, widestring2, ....) oder array("I", 23, 56, 57).

Sonderlich sinnvolle Einsatzmöglichkeiten fallen mir für solche temporären Arrays allerdings nicht ein, außer dass man eine Zeile Programmcode spart.

Eher sinnvoll erscheint es mir bei Zuweisungen zu dynamischen Arrays auch die Schreibweise von VAR zuzulassen:
Declare int meinArray[]
meinArray[] = 10, 67, 98, 3, 14, 9

Gruß
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
04.11.2014  
 




RGH
Also die Schreibweise von VAR funktioniert jetzt auch für dynamische Arrays: Das Array wird geleeert und mit den Werten neu gefüllt.

Die bisherige Syntax

die jedem Element des Arrays den Ausdruck wert zuweist (und &index auswertet) ist weiterhin möglich. (Siehe Hilfe zum Thema Arrays.)
Sobald jedoch mehrere durch Komma getrennte Werte da stehen und das Array dynamisch ist, wird das Array mit den Werten neu befüllt.

In der nächsten Lieferung ist es dabei!

Gruß
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
04.11.2014  
 



Michael W. (02.11.14)
Ja, temp. Arrays sind mir aus PHP bekannt.

Und das gebastelte FormatStr nutzte ja auch Arrays für die Parameter.

DAFÜR...


Vermutlich nicht nur, siehe z.B. auch

jSON


als (zwar abweichende) Schreibweise für Daten- bzw. Elementereihen.

RGH (04.11.14)
...

Sonderlich sinnvolle Einsatzmöglichkeiten fallen mir für solche temporären Arrays allerdings nicht ein, außer dass man eine Zeile Programmcode spart.

...



Geht mir mit Set- und GetPixel so,

als eine Art "Grundsatzbadesalz" sollten sie dennoch nicht fehlen.

Vielleicht übersiehst Du aber auch etwas oder schenkst dem (zu?) wenig Beachtung:

Array als möglichen Datentyp für ein Array-Element eines assoziativen Arrays.

var hashes myElements=array("gut"=>"ding",array(10,array("puste"=>"kuchen"),30),"braucht"=>"zeit")

Das sind so unendlich hilfreiche Dinge, dass ich mir garnicht ausdenken mag, wo ich überhaupt anfangen möchte zu beschreiben, welche Einsatzmöglichkeiten sich böten. In JS, PHP und JAVA sind diese Möglichkeiten jedenfalls nicht wegzudenken und es lässt sich damit für unendlich viele Anwendungsfälle effizienterer und kürzerer Code schreiben. Wenn es XProfan nicht könnte, kann man damit leben, aber eine Diskussion über die Sinnhaftigkeit würde ich fast schon prinzipiell nicht führen.
 
04.11.2014  
 




RGH
Um es mal nach möglicher XProfan-Syntax zu übertragen:

Du würdest so etwas schreiben wollen:
set("HashListDel", "=>")
var hash myElements[] = array(hash "gut=>ding", array(hash 10, array(hash "puste=>kuchen"), 30), "braucht=>zeit")

Das kann man etwas abkürzen, da bei VAR ja die Werte auch so hinzugefügt werden können:
set("HashListDel", "=>")
var hash myElements[] = "gut=>ding", array(hash 10, array(hash "puste=>kuchen"), 30), "braucht=>zeit"

Die Werte 10 und 30 machen für ein Hash-Array wenig Sinn, da hier nur Keys aber keine dazugehörigen Werte angelegt werden, sind aber möglich. Ein Hash-Array mit nur einem Eintrag ("puste=>kuchen") ist natürlich nur zusätzliche Tipperei.
Die Funktion array() mit genannter Syntax wäre rasch geschrieben, aber dass ein Parameter wahlweise String oder Hash-Array sein kann, ist schon aufwändiger ...

Gruß
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
04.11.2014  
 




RGH
Sodele: temporäre Arrays gehen schon mal:
declare int meinArray[]
meinArray[] = array(int 10, 45, 90, 123, 67)

Ok, das Beispiel zeigt nur die Syntax für die Arrayfunktion. Ansonsten würde man es natürlich so schreiben:
declare int meinArray[]
meinArray[] = 10, 45, 90, 123, 67

Gruß
Roland
 
XProfan X2
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
05.11.2014  
 




Jörg
Sellmeyer
[OFFTOPIC]bitte mal den Offtopic in einen aussagekräftigen Thread verschieben. Bei mir spinnt gerade die Forumssoftware. Ich kann unter  [...]  kein neues Unterthema erzeugen. Außerdem frage ich mich, wieso immer ein doppelter Slash am Ende einer Url steht.[/OFFTOPIC]


[OFFTOPIC]jetzt sind die Themen doch erzeugt aber ich kann die Doppelten nicht mehr löschen...[/OFFTOPIC]


bitte hierher verschieben  [...] 
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
05.11.2014  
 



 
- Seite 3 -


RGH (04.11.14)
Die Werte 10 und 30 machen für ein Hash-Array wenig Sinn, da hier nur Keys aber keine dazugehörigen Werte angelegt werden, sind aber möglich.


Selbstverständlich ergeben Keys ohne Werte Sinn, Keys sind Werte!

Erinnere an ForEach, um die Keys als Werte betrachten zu können.

Sammle 10 Zufallszahlen per assoziativem Array und gib sie aus :
whileloop 10

    myarr[rnd(19)]=""

wend

ForEach myarr[], key$
print key$

Worte eines Textes einfach als Keys ablegen erspart viel Arbeit für Wortliste. Natürlich könnte man auch die Häufigkeit zählen per myarr[wort$]++
ForEach myarr[], key$,cnt&
print "Wort:",key$;", Vorkommen:",cnt&

Aber wenn man nicht zählen muss reicht ein "werteloser" Eintrag.

@Jörg: Ich schaue mir das an, habe im Moment aber einfach zu viel um die Ohren. Du kannst an die URL ja so viele Slashes anhängen wie DU magst - z.B.:  [...]  Womit das zusätzliche Slash bei Dir erzeugt wurde muss ich erst nachschauen.
 
05.11.2014  
 




RGH
Es erschließt sich mir zwar nicht, wieso ich für die Zufallszahlen ein Hash-Array anstelle eines performanteren numerischen Arrays nehmen sollte, aber es würde so funktionieren:
declare hash myarr[], key$, wert$

whileloop 10

    myarr[str$(rnd(19))]=""

endwhile

ForEach myarr[], key$, wert$
print key$
EndFor
waitinput
end

Wobei natürlich nicht garantiert ist, dass es wirklich 10 Einträge gibt, da rnd(19) ja durchaus mehrmals den gleichen Wert erzeugen kann.
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
05.11.2014  
 



RGH (05.11.14)
Es erschließt sich mir zwar nicht, wieso ich für die Zufallszahlen ein Hash-Array anstelle eines performanteren numerischen Arrays nehmen sollte, aber es würde so funktionieren:


Ich will ja jetzt nicht schreiben "Frage selbst beantwortet", aber...

RGH (05.11.14)
Wobei natürlich nicht garantiert ist, dass es wirklich 10 Einträge gibt, da rnd(19) ja durchaus mehrmals den gleichen Wert erzeugen kann.


genau das kann erwünscht sein.

Was ich schade fände wäre, wenn denn der Typ schon hash ist, dass dann ein str$ notwendig wäre bei myarr[str$(zahl)]. Das sollte dem XProfan beispielsweise egal sein. Theoretisch müsste auch myarr[array(10,20,30)]=array(40,50,60) möglich sein. Der Key sollte also beliebigem Typs sein können. Das bekommt man doch mit Ketten gut geregelt.
 
05.11.2014  
 




RGH
Zum Einen: str$ ist nicht mehr notwendig. Ich habe die automatische Typkonvertierung (hoffentlich) endlich da, wo ich sie immer haben wollte.

Zum anderen: Alle Wünsche aus den Anfangspostings sind erfüllt:

DestroyWindow, EnableWindow und ShowWindow können statt eines Handles nun auch ein entsprechendes Array (eindimensional, dynamisch oder temporär mit array()) enthalten:

(Die weiter oben genannte Syntax für DestroyWindow gilt daher nicht mehr.)
Im 32-Bit-XProfan können die Arrays auch die Typen Integer, Longint oder Quadint sein, aber damit der Quellcode auch z.B. in FreeProfan64 funktioniert, sollte der Typ Handle genommen werden.

DeleteObject darf nun mehrere Objekt-Handles haben, wie z.B. auch Clear. Hier ist ein Array nicht gestattet.

Und damit wäre ab der nächsten Lieferung auch dieser Thread erledigt!

Gruß
Roland
 
XProfan X2
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
06.11.2014  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

24.947 Betrachtungen

Unbenanntvor 0 min.
Jörg Sellmeyer24.06.2018
Vgdd05.06.2017
maroro01.07.2016
p.specht03.04.2016
Mehr...

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

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