Format String

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Format String

Message par Thyphoon »

Dans le cadre d'un developpement j'ai du créer un fonction format de chaine, je la partage avec vous ça peut servir !
Et peut être que certain d'entre vous auront des idées pour l'optimiser voir l'améliorer !

Code : Tout sélectionner

Procedure.s StrFormat(txt.s,mask.s,ForceMask.b=#False)
  Result.s=""
  Quit=#False
  lt.b=Len(txt)+1
  lm.b=Len(mask)+1
  Repeat
    c.s=Mid(mask,lm,1)
    If c="#" And lt>0
      Result=Mid(txt,lt,1)+Result
      lt=lt-1
      lm=lm-1
    ElseIf c<>"" And lm>0
      Result=c+Result
      lm=lm-1
    Else
          lt=lt-1
      lm=lm-1
    EndIf
 Until (ForceMask=#False And lt<1) Or (ForceMask=#True And lm<1 And lt<1)
 ProcedureReturn Result
EndProcedure

Debug StrFormat("1250","###,###")
Debug StrFormat("8080000","### ### ### ###")
Debug StrFormat("26122009","##-##-####")
Debug StrFormat(RSet(Str(1250333), 9, "0"),"$### ### ###",#True)