| |
|
|
| Explode sans Delimiter KompilierenMarqueSéparation ou bien KompilierenMarqueSéparation pourrait cela Array befüllen avec den individuel Chars - hilfreich et sûrement beschleunigend pour statt mid$ dans Loops.
aussi si es pas zum Thema passt:
je suis toujours qui attitude, dass Explode sur une Leerstring ne...aucune Array avec plus que 0 Entrées zurückliefern sollte. |
|
|
| |
|
|
|
Nico Madysa | je suis toujours qui attitude, qui un Array sans Elemente maximum undefiniert ist - dans etwa comment un undimensionierter Bereich. |
|
|
| |
|
|
|
| une le vide Listbox aussi undefined?
un Array avec 0 Entrées peux pas undefined son là sizeOf(undefined) undefined gäbe statt 0. |
|
|
| |
|
|
|
Nico Madysa | Deswegen donnais je qui Bereiche comme Beispiel. KompilierenMarqueSéparationdeclare versuch#,probe%[],test$
clear versuch#,probe%[],test$
print SizeOf(versuch#),
print SizeOf(versuoch#),
print SizeOf(probe%[]),
print SizeOf(proube%[]),
print SizeOf(test$),
print SizeOf(tehest$)
waitinput
KompilierenMarqueSéparation car Explode pouvoir oui im piège des Leerstrings aussi rien d'autre, comme dem ersten Element quelque chose zuzuweisen; nämlich une Leerstring. Betrachtet on hingegen une Leerstring comme vorhanden, so tomber espace cet Schwierigkeiten weg. un pas vorhanden seiendes Element ist ensuite weder Leerstring encore zéro, mais schlicht pas vorhanden, womit qui Taille des Arrays sans équivoque bestimmbar ist. Womit un Problem trop avons du scheinst, ist, dass Explode überhaupt qui travail aufnimmt. All cela philosophische Zeug pourrait on sich ersparen, si on es schlicht so machte: KompilierenMarqueSéparation Explode pouvoir nämlich quoi es soll: Es teilt den erhaltenen Text den Delimitern ensprechend sur. cela erste, quoi il findet, est un Leerstring, qui zwar rien contient, deswegen mais encore longtemps pas rien ist. cette Leerstring wird ensuite dem ersten Element des Arrays zugewiesen, après gibt es aucun weiteren Teilstring plus - ils sont aucun Leerstrings, mais réellement pas existent - , womit Explode sa travail erledigt hat. un Beispiel pour ist que voici: KompilierenMarqueSéparation le son meiner Logik venez cinq heraus, quoi erhältst du? KompilierenMarqueSéparation le son meiner Logik venez deux heraus, erkläre deux heraus, quoi meinst du? une?
PS: Verzeih mir qui Langatmigkeit, j'ai qui prochain deux Wochen keinen Unterricht plus. |
|
|
| |
|
|
|
| je comprends Votre Logik et vois donc wohin vous stehen bleibt.
Du beachtest pas, dass cela but un Array ist et ne...aucune String.
Statt dessen verkehrst Du qui Funktionsweise im piège eines Leerstrings, car normalement prends den Stringinhalt alphabet et chez einem Leerstring wird sur einmal pas plus qui (pas vorhandene) le contenu geachtet, mais un leerer String. c'est faux et peut-être gibt es aussi c'est pourquoi aucun Discours qui cela so handhabt.
Es bringt aussi aucun Vorteile mais seulement Nachteile si un pas vorhandener Stringinhalt dans un Array geteilt wird welches sur einmal une Eintrag hat den on wiederum seulement überprüfen muss.
Kurz bemerkt:
Bien sûr ergibt
; 2 Einträge et ergibt 1 Eintrag et keinen Eintrag weil rien dans un Array trop konvertieren était.
Zumal, je hatte Explode angeregt weil es pratique ist et weil je qui Funktionsweise aus anderen Sprachen kenne et liebe - et weil XProfan interpretiert et native Acceleratoren sûrement zur Programmqualität beitragen.
cet XProfanische Extrawurst versämmelt cela Explode cependant, pour chaque explode un völlig unnötiges si ou bien cas trop mettons ist assez einmalig(il Unsinn).
Sinnfrei ist es, si le devoir ist, une Stringinhalt dans un Array trop konvertieren, chez einem pas vorhandenen Stringinhalt un Array abzuliefern, welches 1 Eintrag contient.
Verkompliziert aussi cela ganze SizeOf (count) - Gedöns dahingehend cela on pas avec den payons le calcul peux sans cet jeweils nochmals trop überprüfen. Grad wohin es mir um plus Geschwindigkeit ging...
et près de qui Logik bleibt encore qui Anwendungsfreundlichkeit. je explode comment un wilder, viele Jahre Erfahrung avec - et qui XProfanische Umsetzung ist abweichend, unfreundlich, pas hilfreich et logisch seulement sur halben Wege.
Beispiel
sizeOf(explode(textDateiInhalt, )) sollte le nombre qui Zeilen zurückliefern, chez einer vider Dossier naturellement 0 et pas 1.
Es wird ne...aucune String konvertiert, Explode sollte den Stringinhalt konveriteren dans un Array.
je vois cela so: encore utilise à peine quelqu'un xprofanisches Explode, encore ist es pas trop spät cela trop changement - et je suis zuversichtlich pour dem Prinzip espoir.
Anders wäre es naturellement si le Funktion nico_explode ou bien rgh_explode ou bien some_explode ou bien like_explode hiesse... |
|
|
| |
|
|
|
Nico Madysa | bien, maintenant hab ego verstanden. Du teilst pas den String, mais dessen le contenu sur. dans diesem piège stimme je dir trop et schließe mich deiner attitude à.
ensuite devrait alors folgende Ergebnisse herauskommen, oui? KompilierenMarqueSéparation PS: Ergiebt ist bewusst so geschrieben, je folgte justement aus reiner ennui qui orthographe trop Goethes Zeiten. |
|
|
| |
|
|
|
| |
|
| |
|
|
|
| seulement comment apporter wir cela schonend dem Roland chez? |
|
|
| |
|
|
|
Nico Madysa | on pourrait ihn dans unsere Kilometerpostingdiskussion inviter et ihn erstmal um un Statement en supplément bitten, comment il car trop obigen Beispielen stehe. KompilierenMarqueSéparation Roooooooooolaaaaannd? |
|
|
| |
|
|
|
| |
|
| |
|
|
|
Nico Madysa | Verzeih - je hab mich dans den letzten Tagen quelque chose à PHP versucht, quoi abgefärbt trop avons scheint. mais là cela Thema oui Teilstrings en tout betrifft, devrait es so aussi xprofankonform son. KompilierenMarqueSéparation |
|
|
| |
|
|
|
RGH | iF, Beitrag=52049, Zeitpunkt=26.04.2009
Gute concept. wird es dans qui prochain XProfan-Version so donner, wbei beide Varianten (seulement 1 Parameteroder zweiter paramètre un Leerstring) marcher.
iF, Beitrag=52049, Zeitpunkt=26.04.2009
aussi si es pas zum Thema passt:
je suis toujours qui attitude, dass Explode sur une Leerstring ne...aucune Array avec plus que 0 Entrées zurückliefern sollte.
Ok, ok, aussi cela ...
Salut 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 | 15.05.2009 ▲ |
|
|
|