Tausendertrennzeichen für (große) Zahlen

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Hellhound66
Beiträge: 476
Registriert: 23.03.2005 23:19

Beitrag von Hellhound66 »

Meine Prozedur unterstützt auch Unicode...
Wenn PB alles richtig macht, unterstützt das meine auch. So what?
Optimismus ist ein Mangel an Information.
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

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
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag von edel »

Und nicht eine floats ...
Benutzeravatar
Proton
Beiträge: 152
Registriert: 20.06.2006 12:21
Wohnort: Eckernförde /Stadtbergen

Beitrag von Proton »

Im Code-Archiv gibt es die Routine "StringUsing" die zudem noch etwas
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.
Benutzeravatar
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

Beitrag 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:
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.
Bild
Benutzeravatar
#NULL
Beiträge: 2237
Registriert: 20.04.2006 09:50

Beitrag von #NULL »

das hatte ich bei mir auch mal drin, dachte dann aber, die drei character sind auch mit dem algo schnell gemacht.
my pb stuff..
Bild..jedenfalls war das mal so.
Benutzeravatar
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

Beitrag 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.
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.
Bild
Benutzeravatar
#NULL
Beiträge: 2237
Registriert: 20.04.2006 09:50

Beitrag 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?
my pb stuff..
Bild..jedenfalls war das mal so.
Benutzeravatar
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

Beitrag 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.
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.
Bild
Hellhound66
Beiträge: 476
Registriert: 23.03.2005 23:19

Beitrag 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.)
Optimismus ist ein Mangel an Information.
Antworten