>deine proc vermisst unicode.
Doch, das tut sie jetzt.

es war nur eine winzig kleine Veränderung nötig, überall, wo mit Peeks() gearbeitet wird, das Anhängsel *(1+#PB_Compiler_Unicode) bei Pointern etc. hinzuzufügen. Normalerweise, wird ind er FOR-Schleife mit PeekS() nur drei Zeichen (=drei Bytes) gelesen. Das Anhängsel bewirkt, dass bei eingeschaltetem Unicode die 3 auf eine 6 erweitert wird. Somit ist keine zusätzliche IF-Abfrage nötig.
Damit ist meine proc auch endlich vollendet. (hoffe ich)
Code: Alles auswählen
Procedure.s tausendertrennzeichen(zahl.q, separator.s=".")
If zahl > -1000 And zahl < 1000
ProcedureReturn Str(zahl)
EndIf
Protected zahl$=RemoveString(StrQ(zahl), "-"), start.l=Len(zahl$)%3, res.s=PeekS(@zahl$, start), n.l
For n=start To Len(zahl$)-start-1 Step 3
res+separator+PeekS(@zahl$+n*(1+#PB_Compiler_Unicode), 3*(1+#PB_Compiler_Unicode))
Next
If zahl < 0
res="-"+res
EndIf
If start
ProcedureReturn res
Else
ProcedureReturn PeekS(@res+Len(separator)*(1+#PB_Compiler_Unicode))
EndIf
EndProcedure
Debug tausendertrennzeichen(1234567890)
Debug tausendertrennzeichen(123456789)
Debug tausendertrennzeichen(12345678)
Debug tausendertrennzeichen(1234567)
Debug tausendertrennzeichen(123456)
Debug tausendertrennzeichen(12345)
Debug tausendertrennzeichen(1234)
Debug tausendertrennzeichen(123)
Debug tausendertrennzeichen(12)
Debug tausendertrennzeichen(1)
Debug tausendertrennzeichen(0)
Debug tausendertrennzeichen(-1)
Debug tausendertrennzeichen(-12)
Debug tausendertrennzeichen(-123)
Debug tausendertrennzeichen(-1234)
Debug tausendertrennzeichen(-12345)
Debug tausendertrennzeichen(-123456)
Debug tausendertrennzeichen(-1234567)
Debug tausendertrennzeichen(-12345678)
Debug tausendertrennzeichen(-123456789)
Debug tausendertrennzeichen(-1234567890)
