Wenn PB alles richtig macht, unterstützt das meine auch. So what?Meine Prozedur unterstützt auch Unicode...
Tausendertrennzeichen für (große) Zahlen
-
- Beiträge: 476
- Registriert: 23.03.2005 23:19
So nix... Fazit: Alle Procs unterstützen Unicode (was ja auch gut ist).
PB 4.30
Code: Alles auswählen
Macro Happy
;-)
EndMacro
Happy End
Im Code-Archiv gibt es die Routine "StringUsing" die zudem noch etwas
mehr macht.
mehr macht.
Zitat:
"Ich kann mich vor die Meute stellen und für Nichts kämpfen. Ich kann aber auch einen Schritt zur Seite gehen, die Meute vorbeiziehen lassen und dabei meine Zeit angenehm bei Freunden verbringen.". Da hat er Recht, mein Pap's.
"Ich kann mich vor die Meute stellen und für Nichts kämpfen. Ich kann aber auch einen Schritt zur Seite gehen, die Meute vorbeiziehen lassen und dabei meine Zeit angenehm bei Freunden verbringen.". Da hat er Recht, mein Pap's.
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
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
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

PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Str ist schneller als StrQ, es ist nur eine Rückgabe als String erforderlich, alles weiteren Deklarationen, Umwandlungen und Schleifen fallen weg.#NULL hat geschrieben:das hatte ich bei mir auch mal drin, dachte dann aber, die drei character sind auch mit dem algo schnell gemacht.
Das eine If kostet so gut wie garkeine Zeit, lohnt also immer.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

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
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
>> ..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.
Weiß ich nicht, theoretisch nicht erforderlich, nur Speicher für die Parameter
und die Rückgabe. Der Rest sollte in der Runtime alloziert werden.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

-
- Beiträge: 476
- Registriert: 23.03.2005 23:19