Seite 3 von 7

Verfasst: 19.11.2006 01:12
von Hellhound66
Meine Prozedur unterstützt auch Unicode...
Wenn PB alles richtig macht, unterstützt das meine auch. So what?

Verfasst: 19.11.2006 01:16
von AND51
So nix... Fazit: Alle Procs unterstützen Unicode (was ja auch gut ist).

Verfasst: 19.11.2006 03:34
von edel
Und nicht eine floats ...

Verfasst: 19.11.2006 09:31
von Proton
Im Code-Archiv gibt es die Routine "StringUsing" die zudem noch etwas
mehr macht.

Verfasst: 19.11.2006 12:26
von ts-soft
Beim "Optimieren" übersehen haben anscheinend Alle, das Werte unter 1000
unverändert als Str() zurückgegeben werden können. Diesen Test würde ich
als erstes am Procedureanfang machen, um diese gegebenenfalls gleich
wieder zu verlassen :wink:

Verfasst: 19.11.2006 12:47
von #NULL
das hatte ich bei mir auch mal drin, dachte dann aber, die drei character sind auch mit dem algo schnell gemacht.

Verfasst: 19.11.2006 12:53
von ts-soft
#NULL hat geschrieben:das hatte ich bei mir auch mal drin, dachte dann aber, die drei character sind auch mit dem algo schnell gemacht.
Str ist schneller als StrQ, es ist nur eine Rückgabe als String erforderlich, alles weiteren Deklarationen, Umwandlungen und Schleifen fallen weg.
Das eine If kostet so gut wie garkeine Zeit, lohnt also immer.

Verfasst: 19.11.2006 13:08
von #NULL

Code: Alles auswählen

Procedure.s FormatByteSize( n.q, sep.s="." )
  If n<1000
    ProcedureReturn Str(n)
  Else
    Protected s.s=StrQ(n)
    Protected len=Len(s)
    Protected ret.s
   
    For i=0 To len-1
      If i And Not i%3 :: ret=sep+ret :: EndIf
      ret= Mid(s,len-i,1) +ret
    Next
   
    ProcedureReturn ret
  EndIf
EndProcedure
..der speicherplatz für die protected variablen wird doch aber sowieso alloziiert, oder? fallen da nur die zuweisungen weg?

Verfasst: 19.11.2006 13:19
von ts-soft
>> ..der speicherplatz für die protected variablen wird doch aber sowieso alloziiert, oder? fallen da nur die zuweisungen weg?
Weiß ich nicht, theoretisch nicht erforderlich, nur Speicher für die Parameter
und die Rückgabe. Der Rest sollte in der Runtime alloziert werden.

Verfasst: 19.11.2006 13:34
von Hellhound66
der speicherplatz für die protected variablen wird doch aber sowieso alloziiert, oder?
Ja, auf dem Stack. Benötigt ein SUB für alle Variablen. (Gut, PB ist doof und setzt die alle immer vorher auf 0, was mir auf den Sack geht, weils unnötig Zeit kostet.)