String Prozedur für Führende Nullen und mehr

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.
Benutzeravatar
Xaby
Beiträge: 2144
Registriert: 12.11.2005 11:29
Wohnort: Berlin + Zehdenick
Kontaktdaten:

String Prozedur für Führende Nullen und mehr

Beitrag von Xaby »

Vielleicht gibt's sowas schon, komisch, dass es das nicht schon in Pure direkt gibt oder ich habe es übersehen.
Ich brauche die Prozedur ständig, vielleicht wäre das auch was für V.4

Code: Alles auswählen

Procedure.s StrN(S1.s, S2.s,n.l, a.l)
  Zahl$=LSet(S1,n-Len(Str(a)),S2)
  Zahl$=Zahl$+Str(a)
  ProcedureReturn Zahl$
EndProcedure
Also der Code ist wohl klar.
Für drei führende Nullen sieht der String dann so aus:

Code: Alles auswählen

StrN("","0",3,i)
Wobei das ja meist in Schleifen wichtig ist und i hier die Zählvariable
Wenn man z.B. Level-Nummern hat oder für eine Darstellung führende Zeichen benötigt. Statt der Null kann man sich auch ein Leerzeichen vorstellen, für die Console z.B., dass Zahlen schöner unter einander stehen.

Für das Level 15 z.B. StrN("LEV","0",8,15)
Wobei hier die Anzahl der führenden Nullen vom Text am Anfang abgezogen wird. Die Zahl, die nach den beiden StringTeilen kommt, gibt an, wie lang der String dann werden soll. Bei Dateinamen z.B. 8 Zeichen
Resultat: LEV00015


Ich hatte nach Strings mal gesucht und nach führenden Nullen, naja nichts gefunden, aber ich kann mir nicht vorstellen, dass ich der erste bin, der sowas braucht.

Liebe Grüße, viel Spaß mit dem Code.
Kinder an die Macht http://scratch.mit.edu/
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 »

Verstehe ich nicht :freak:
Wo ist der Unterschied, ausser der Parameterreihenfolge?

Code: Alles auswählen

Procedure.s StrN(S1.s, S2.s,n.l, a.l)
  Zahl$=LSet(S1,n-Len(Str(a)),S2)
  Zahl$=Zahl$+Str(a)
  ProcedureReturn Zahl$
EndProcedure

Debug StrN("","0",3,i)
Debug LSet("", 3, "000")
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
NicTheQuick
Ein Admin
Beiträge: 8807
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Beitrag von NicTheQuick »

Wie wärs mit [c]RSet()[/c]:

Code: Alles auswählen

Procedure.s StrN(S1.s, S2.s,n.l, a.l) 
  Zahl$=LSet(S1,n-Len(Str(a)),S2) 
  Zahl$=Zahl$+Str(a) 
  ProcedureReturn Zahl$ 
EndProcedure 

zahl.l = 99
Debug StrN("","0",3, zahl) 
Debug RSet(Str(zahl), 3, "0")
Benutzeravatar
otto
Beiträge: 20
Registriert: 27.09.2005 00:09

Re: String Prozedur für Führende Nullen und mehr

Beitrag von otto »

Xaby hat geschrieben: Ich hatte nach Strings mal gesucht und nach führenden Nullen, ...
Führende Nullen gibts überall, besonders in der Politik.
Wie man die wegbekommt, weiß ich auch nicht so genau.

Es gilt aber weiterhin:
'Nullen zählen mit und dürfen auch gewählt werden.'
zitiert aus Ekel Alfred
Benutzeravatar
Xaby
Beiträge: 2144
Registriert: 12.11.2005 11:29
Wohnort: Berlin + Zehdenick
Kontaktdaten:

Hier vielen Dank an NicTheQuick

Beitrag von Xaby »

Lieben Dank an NicTheQuick :allright:
Muss ich den Wald vor lauter Bäumen nicht gesehen haben.
Aber ich hab ja gesagt, ich denke, dass es sowas schon geben muss. :?
Kinder an die Macht http://scratch.mit.edu/
Antworten