AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

IBAN String Formatieren

Ein Thema von josef-b · begonnen am 2. Feb 2022 · letzter Beitrag vom 2. Feb 2022
Antwort Antwort
josef-b

Registriert seit: 6. Jun 2004
Ort: bei Jena in Thüringen
95 Beiträge
 
Delphi 11 Alexandria
 
#1

IBAN String Formatieren

  Alt 2. Feb 2022, 17:54
Delphi-Version: 10 Seattle
Ich möchte gerne IBAN (Bankkontonummern) formatieren.

ich habe:

einen String wie 'DE12123412341234123412'

und ich möchte: 'DE 12 1234 1234 1234 1234 12'

Das ist bestimmt ganz einfach, aber ich komme nicht drauf.

Delphi-Quellcode:

evtl.

format('%S.....?
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.442 Beiträge
 
Delphi 12 Athens
 
#2

AW: IBAN String Formatieren

  Alt 2. Feb 2022, 18:20
Delphi-Quellcode:
uses
  System.MaskUtils;

var
  formattedIBAN: string;
begin
  formattedIBAN := FormatMaskText('LL 00 0000 0000 0000 0000 00;0; ', 'DE12123412341234123412');
end;
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.798 Beiträge
 
Delphi 12 Athens
 
#3

AW: IBAN String Formatieren

  Alt 2. Feb 2022, 18:21
Schau Dir mal VCL.TMaskEdit an. Ich persönlich finde das ziemlich unschön, aber wenn Du es wirklich brauchst...

Edith sagt: Uwe war schneller...

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
josef-b

Registriert seit: 6. Jun 2004
Ort: bei Jena in Thüringen
95 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: IBAN String Formatieren

  Alt 2. Feb 2022, 18:56
Vielen Dank Ihr zwei..
  Mit Zitat antworten Zitat
BerndS

Registriert seit: 8. Mär 2006
Ort: Jüterbog
491 Beiträge
 
Delphi 12 Athens
 
#5

AW: IBAN String Formatieren

  Alt 2. Feb 2022, 19:06
Formatiert man das nicht immer in Blöcken zu vier Zeichen?
DE12 3456 7890 1234 5678 90

Das habe ich mal eine einfache Funktion gepackt.
Delphi-Quellcode:
const
  cThinNoBreakSpace = #8239; // siehe https://de.wikipedia.org/wiki/Schmales_Leerzeichen

function FormatIBAN(AIBAN: string; AThinNonBreakSpace: Boolean = False): string;
var
  I: Byte;
  C: Char;
begin
  Result := AIBAN;
  if AThinNonBreakSpace then
    C := cThinNoBreakSpace
  else
    C := #32;
  for I := 1 to 5 do
    Insert(C, Result, I * 5);
end;
Durch das schmale Leerzeichen wird wenig Platz verschwendet und es wird nicht umgebrochen.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#6

AW: IBAN String Formatieren

  Alt 2. Feb 2022, 19:35
Da ich sonst nie zum Regexen komm' , aber Einzeiler so ma ... https://regex101.com/r/nnuwfo/1

Delphi-Quellcode:
uses System.RegularExpressions;

var IBAN := 'DE12345678901234567890';
IBAN := TRegEx.Replace(IBAN, '(\w{4})', '$1 ');
ShowMessage(IBAN);
Delphi-Quellcode:
var IBAN := 'DE1234 5678901 234   567890';
IBAN := TRegEx.Replace(IBAN.Replace(' ', ''), '(\w{4})', '$1 ');
ShowMessage(IBAN);
oder statt \w ein [A-Z0-9] , [a-zA-Z0-9] oder [[:alnum:]]
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 2. Feb 2022 um 19:48 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:38 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz