(ASM-LIB) PHPString (V0.28)

Anwendungen, Tools, Userlibs und anderes nützliches.
Benutzeravatar
Deeem2031
Beiträge: 1232
Registriert: 29.08.2004 00:16
Wohnort: Vorm Computer
Kontaktdaten:

Beitrag von Deeem2031 »

Was denn? :?
AddCSlashes.s(String.s,Charlist.s) ?
stripcslashes() kommt ja noch...
Bild
[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]
Leo
Beiträge: 420
Registriert: 26.10.2004 18:26

Beitrag von Leo »

Er meint imo, dass PB's Len schneller sein soll, als dein StrLen.
Benutzeravatar
Deeem2031
Beiträge: 1232
Registriert: 29.08.2004 00:16
Wohnort: Vorm Computer
Kontaktdaten:

Beitrag von Deeem2031 »

Und warum soll das dann mehr Sinn ergeben?
Ich glaub kaum das Fred Zeit dazu hat sich jede Procedure stundenlang anzugucken und nach Möglichkeiten sucht die die Proc ein bisl schneller macht. Zudem ist StrLen() um einiges größer als Len(), es ist also nur schneller, nicht kleiner.
Bild
[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]
Benutzeravatar
PureFan
Beiträge: 19
Registriert: 10.09.2004 14:40
Kontaktdaten:

Beitrag von PureFan »

Jeder weiss, das Fred nicht viel Wert auf Optimierung gelegt hat... aber diese Befehle sind nun mal Hand-Optimiert und extra so gecoded, das damit eine maximale Geschwindigkeit erreicht wird.. also meiner Meinung ergibt das Sinn! ;)

[EDIT: Nochmal zur Erklärung, Fred hat damals fast alles mit den Standart C-Befehlen erstellt, um es später auch auf MAC etc konvertieren zu können. Und der C-Compiler ist leider nicht ganz so gut wie handoptimiertes Assembler (hier nur halb so schnell)]

Aber warten wir einfach mal ab, denn wie ich weiss plant Fred ja sowieso schon Threadsichere Strings und hat vor in diesem Zug auch andere String-Funktionen zu optimieren..
Procedure x(a,b,c):If a:ProcedureReturn b:EndIf:ProcedureReturn c:EndProcedure:For I=0 To 6:T.s+Chr(I&1+x(((I&4)/4+(I&2)/2-I&1+1)&6,1,0)<<1+x(I&1-(I&4)/4,1,0)<<2+x((I+2)&7,0,1)<<3+((4-(I+1)&4)/4)<<4+x(3-(I+3)&3,1,0)<<5+64):Next I:Debug T
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Beitrag von bobobo »

Deeem2031 hat geschrieben:Und warum soll das dann mehr Sinn ergeben?
Ich glaub kaum das Fred Zeit dazu hat sich jede Procedure stundenlang anzugucken und nach Möglichkeiten sucht die die Proc ein bisl schneller macht. Zudem ist StrLen() um einiges größer als Len(), es ist also nur schneller, nicht kleiner.
ne ne .. alles falsch .. ich meinte dass man eigentlich mal ne PHP-Klasse schreiben müsste die die unsägliche PHP-Syntax bereinigt ..

Nichts brauch ich mehr als ne Dokumentation wenn ich mit PHP rummachen muss. Jeder Befehl heisst irgendwie anders und kommt dazu auch noch in drei verschiedenen Versionen vor .. :mrgreen:

Der PHP->PB Ansatz ist schon gut :allright:
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Benutzeravatar
Deeem2031
Beiträge: 1232
Registriert: 29.08.2004 00:16
Wohnort: Vorm Computer
Kontaktdaten:

Version 0.22

Beitrag von Deeem2031 »

Version 0.22:

Neue Befehle:

AddSlashes.s(String.s) - Schützt die Zeichen " ' \ mit einem Backslash (\) (Das Nullbyte zu schützen würde wohl kaum Sinn machen)

StrStr.s(String.s, SuchString.s) - Ähnlich wie StrPos, nur das nicht die Position sondern der String ab der Position zurückgegeben wird.

Optimiert:
StrTok; SubStr

Leider ist uns vorhin aufgefallen das alle Procs die Strings zurückgeben buggy sind, nämlich wenn man einen String an das Ergebniss anhängen will, aber das wird natürlich auch noch gefixt.
Bild
[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]
Benutzeravatar
Deeem2031
Beiträge: 1232
Registriert: 29.08.2004 00:16
Wohnort: Vorm Computer
Kontaktdaten:

Beitrag von Deeem2031 »

Hab jetzt alle Procs außer StrStr() (is nich so einfach :\ ) gefixt.
Bild
[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

PureFan hat geschrieben:Jeder weiss, das Fred nicht viel Wert auf Optimierung gelegt hat... aber diese Befehle sind nun mal Hand-Optimiert und extra so gecoded, das damit eine maximale Geschwindigkeit erreicht wird.. also meiner Meinung ergibt das Sinn! ;)
:lol: Ich merke es gerade an meinem MeshEditor: Ich compilier ihn ohne den Optimizer(danke remi!), dann seh ich den Courser flackern und alles ist ein wenig hinterher(kein wunder, auf nem Laptop). Wenn ich ihn mit dem Optimizer Optimieren lasse, geht alles wunderbar, der Courser flackert höchstens noch in 3 Sekunden ein mal(sichtbarer Weise) und man kann wunderbar die Meshes bearbeiten/erstellen/anschauen in 4 verschiedenen Sichtweisen. Wie's bei 20 Viewports aussieht weiß ich nicht :freak: aber wer nutzt soviele?

Ich werd mir die PHPString Lib auf jeden Fall im Hinterkopf runterladen ;) .
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
Deeem2031
Beiträge: 1232
Registriert: 29.08.2004 00:16
Wohnort: Vorm Computer
Kontaktdaten:

Version 0.23

Beitrag von Deeem2031 »

Version 0.23:

Neue Befehle:

UCFirst.s(String.s) - Ändert den ersten Buchstaben zu einem Großbuchstaben.

Repariert:

StrStr.s()


Jetzt müssten also alle Stringprocs richtig laufen!
Bild
[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]
Benutzeravatar
Deeem2031
Beiträge: 1232
Registriert: 29.08.2004 00:16
Wohnort: Vorm Computer
Kontaktdaten:

Re: Version 0.23

Beitrag von Deeem2031 »

Version 0.23f:

Neue Befehle:

-

Repariert:

UCFirst.s(String.s) - War noch leicht buggy, der Orginalstring wurde nämlich geändert. (UCFirst("a"):Debug "a"; -> A)

Sonstiges:

Count_Chars() und Count_CharsS() heißen jetzt CountChars() und CountCharsS(), weil der PBCompiler mit den Unterstrichen nicht umgehen kann.

Außerdem sind in der Lib jetzt FreeArray() und CountArray() enthalten, die Procs brauch ich nämlich später zum zurückgeben des Arrays von Explode(). Explode() ist zwar auch schon enthalten aber nicht zu gebrauchen, war nur zu faul die Proc wieder rauszunehmen, ist ja auch eigentlich nur ein Bugfix für UCFirst().
Bild
[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]
Antworten