Zahlen formatiert ausgeben

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.
walbus
Beiträge: 137
Registriert: 03.03.2013 20:50

Zahlen formatiert ausgeben

Beitrag von walbus »

:)
Zuletzt geändert von walbus am 09.02.2015 11:01, insgesamt 2-mal geändert.
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8679
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Re: Zahlen formatiert ausgeben, cool

Beitrag von NicTheQuick »

Dann lasst den Contest mal beginnen. Hier mal meine Pointer-lose Version:

Code: Alles auswählen

Procedure.s zahl_formatieren(value.q, delimiter.c)
	Protected.s sValue = Str(value)
	Protected.i length = Len(sValue), i = length % 3
	Protected.s	result = Left(sValue, i)
	
	For i = i To length - 1 Step 3
		result + Left(Chr(delimiter), i) + Mid(sValue, i + 1, 3)
	Next
	
	ProcedureReturn result
EndProcedure
Bild
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Zahlen formatiert ausgeben, cool

Beitrag von RSBasic »

Hier meine WinAPI-Version:

Code: Alles auswählen

Procedure.s GetNumberFormat(Number$, ThousandGroup, ThousandSep$, DecimalGroup, DecimalSep$)
  Protected NUMBERFMT.NUMBERFMT
  Protected lpNumberStr$ = Space(255)
  
  NUMBERFMT\NumDigits = DecimalGroup
  NUMBERFMT\Grouping = ThousandGroup
  NUMBERFMT\lpDecimalSep = @DecimalSep$
  NUMBERFMT\lpThousandSep = @ThousandSep$
  
  GetNumberFormat_(#LOCALE_SYSTEM_DEFAULT, #Null, Number$, NUMBERFMT, @lpNumberStr$, Len(lpNumberStr$))
  
  ProcedureReturn lpNumberStr$
EndProcedure

Debug GetNumberFormat("1234567899", 3, ".", 0, ",")
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8679
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Re: Zahlen formatiert ausgeben, cool

Beitrag von NicTheQuick »

RSBasic hat geschrieben:Hier meine WinAPI-Version:
<snip>
Du Schummler. :mrgreen:
Bild
walbus
Beiträge: 137
Registriert: 03.03.2013 20:50

Re: Zahlen formatiert ausgeben, cool

Beitrag von walbus »

:)
Zuletzt geändert von walbus am 07.02.2015 22:56, insgesamt 2-mal geändert.
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8679
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Re: Zahlen formatiert ausgeben, cool

Beitrag von NicTheQuick »

Wenn du durch 1024 teilst, solltest du seit einige Zeit aber besser MiB schreiben und nicht MB: Byte
Bild
walbus
Beiträge: 137
Registriert: 03.03.2013 20:50

Re: Zahlen formatiert ausgeben, cool

Beitrag von walbus »

:)
Zuletzt geändert von walbus am 07.02.2015 22:56, insgesamt 1-mal geändert.
Benutzeravatar
Vera
Beiträge: 928
Registriert: 18.03.2009 14:47
Computerausstattung: Win XP SP2, Suse 11.1
Wohnort: Essen

Re: Zahlen formatiert ausgeben, cool

Beitrag von Vera »

walbus hat geschrieben:Für Newbies, ... ist richtiger.
Wahrlich wahr - denn nur richtiger ist perfekter als korrekt je sein kann :lol:


btw: Danke für die netten Beispiele ... ich hab' leider nichts kondensierteres hingekriegt.

cheers ~ Vera
°
<°)))o><
~~~~~~~~~
echo "Don't worry"
echo "Keep quiet"
@echo off
format forum:\
walbus
Beiträge: 137
Registriert: 03.03.2013 20:50

Re: Zahlen formatiert ausgeben, cool

Beitrag von walbus »

:)
Zuletzt geändert von walbus am 07.02.2015 22:53, insgesamt 1-mal geändert.
Benutzeravatar
CodeCommander
Beiträge: 213
Registriert: 02.03.2014 16:06

Beitrag von CodeCommander »

~ DELETE ~
Zuletzt geändert von CodeCommander am 18.01.2015 14:55, insgesamt 1-mal geändert.
~ DELETE ~
Antworten