Italia
Wünsche und Anregungen

Wunsch: Typenkleinigkeiten

 
Ich überleg die ganze Zeit wie ich es am besten erklären kann...

Die Funktion MID$ liefert einen "String" und die Funktion Explode ein "Dynamisches String-Array".

MID$ auf ein Leerstring, also ein MID$ auf "nichts", liefert einen Leerstring zurück, also einen String ohne Zeichen.

Explode auf ein Leerstring, also explode("",""), liefert ein "Dynamisches String-Array" zurück, also "nichts" als Array, also ein Array ohne Indizes/Einträge.

XProfan11 hat leider den Bug, ein dynamisches String-Array zurück zu liefern, welches eben nicht leer ist sondern einen Eintrag enthält.

Auch wenn ein Leerstring ein "String" ist, und damit z.B. bei MID$ deshalb auch der Rückgabewert ein LeerString ist, so ist bei Explode der Rückgabewert ein "Dynamisches String-Array", welches keine Einträge haben darf genau wie ein Leerstring auch keine Zeichen enthalten darf.

Ich kanns auch beweisen!
KompilierenMarkierenSeparieren
var meinString$="A"
print len(meinString$)zeigt 1
meinString$=""
print len(meinString$)zeigt 0
declare meinArray$[]
meinArray$[]=explode("A",",")
print sizeOf(meinArray$[])zeigt 1
meinArray$[]=explode("",",")
print sizeOf(meinArray$[])zeigt 1
waitkey
08.08.2008  
 




Frank
Abbing
Du hast recht, mit "","" potrebbe kein solches Array erstellt werden!
 
08.08.2008  
 




RGH
Frabbing, Beitrag=43245, Zeitpunkt=08.08.2008
Du hast recht, mit "","" potrebbe kein solches Array erstellt werden!


... und wird künftig auch nicht mehr. Das Ergebnis-Array hat die Dimensione 0, wie von iF gefordert.

Saluto
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
09.10.2009  
 



Super, kann man einfacher mit umgehen.
 
09.10.2009  
 



Ich bin übrigens immer noch der Meinung, dass Du das Umdrehen der Parameter rückgängig machen könntest. Noch nutzt niemand explode, dass potuto die letzte Chance sein. ^^

Die jetzige Variante verwirrt mich spätestens wenn ich innerhalb 1 Editor mit verschiedenen Sprachen programmiere, also ein Fenster mit HTML/JS aufhabe, eins mit PHP und eins mit XProfan. Bei instr oder ins$ heissts doch auch: gesuchter, durchsuchter und bei bei Explode war nunmal seither auch: gesuchter, durchsuchter.
 
09.10.2009  
 




RGH
Tja, das mit den Parametern ist so eine Sache ... überall ist der Delimiter hinten dran und kann ggf,. weggelassen werde.
Ich denke, dass das XProfan-Explode eher zu XProfan "kompatibel" sein sollte, als zu anderen Sprachen.

Saluto
Roland
(beginnt derzeit wieder, am nächsten XProfan zu basteln.)
 
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
09.10.2009  
 



Ich sehe das etwas anders, denn bei instr oder ins$ heisst es auch (gesuchter, durchsuchter).

Ein Explode(gesuchter, durchsuchter) wäre dann nicht weniger XProfan-kompatibel.

Weglassen des Delimiters ginge auch wenn es der 1. Parameter wäre. (naturalmente, sei denn, Du hast per Explode noch weitere optionale Parameter angeplant)

Ich würde eher sagen, dass das Explode eine gute Idee aus anderen Sprachen ist, die XProfan aufgegriffen hat. Jetzt aber die Parameter dafür zu vertauschen müsste einen Grund haben, aus persönlicher Erfahrung ists einzig nervig besonders auch weil imho technisch unnotwendig. ^^

Natürlich kann ich es auch als "persönliche Note" anerkennen, aber ich dachte Du hast das Explode per mich gemacht. ^^
 
09.10.2009  
 




Nico
Madysa
Tut mir Leid, iF; doch hier stimme ich definitiv mit Roland überein.
Explode gehorcht nicht dem Prinzip gesucht-durchsucht wie InStr oder Translate$, sondern (sogar ziemlich offensichtlich) dem Substringprinzip; wie SubStr, len, etc. Bei Explode("A B C D E F"," ") fasse ich das Leerzeichen nicht als gesuchten String -- Instr(" ","A B C D E F") -- , sondern als Delimiter/Begrenzer auf: del$("A B C D E F",3,1," ")

NB: Gerade ist mir aufgefallen, dass Explode auch in der XProfan-Aiuto im Bereich Teilstrings steht (7.11); und dort passt die Parameterreihenfolge wirklich gut hinein .
 
Nico Madysa
10.10.2009  
 



Was Du schreibst macht Sinn, z.B. wenn einem das explode neu ist, man nicht bereits hunderte Codes mit "richtigem" Explode vorliegen hat.

Locate Y,X - aus Basic
setPixel X,Y - aus Basic
var ... - (u.A.) aus Java
ins$(d$,s$) ...
explode - aus PHP

Weils aus PHP kommt die Parameter vertauschen?
 
10.10.2009  
 




Nico
Madysa
Gut, also circa SetPixel müssen wir uns wirklich nicht streiten; ohne arrogant wirken zu wollen kann ich sagen, dass die Reihenfolge X, Y doch eine seeeehr etablierte Form ist.
Was Locate angeht, so ärgert mich diese Verdrehung von Anbeginn; wenn das korrigiert würde, wäre ich schon dankbar. (Kompatibilitätsbedenken halte ich per unangebracht, überleben die meisten Kodes, die Locate benützen, doch selten das Ende der Windowssitzung.)

Und nein, die Parameter werden bei Explode nicht vertauscht, weils aus PHP kommt, sondern weil es im Kontext mit XProfan umgekehrt einfach mehr Sinn ergiebt -- wie du schon sagtest.

Meine Meinung mag etwas radikal sein, aber ich denke nicht, dass wir nur den anderen Programmiersprachen zuliebe noch eine lästige Ausnahme ins Schema zwängen sollten.

PS: Eigentlich eine gute Idee -- warum ist der Delimiter nicht optional? Fehlt er, dann ist jeder Buchstabe ein Teilstring.
 
Nico Madysa
10.10.2009  
 




RGH
Nopch mal kurz zu explode() in XProfan 12:

1. Ist der zweite Parameter (Delimiter) ein Leerstring, wird jedes Zeichen zu einem Array-Wert.
2. In diesem Fall kann der 2. Parameter, analog zu anderen XProfan-Funktionen, auch weggelassen werden: var string Zeichen[] = explode("Hugo")

Saluto
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
22.10.2009  
 



Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

4.197 Views

Untitledvor 0 min.
H.Brill05.05.2023

Themeninformationen



Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


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