Autor Beitrag
Ivy
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 228



BeitragVerfasst: Mo 06.08.12 13:21 
Hallo zusammen
ich möchte einen string führend mit nullen füllen. und zwar benötige ich immer eine zeichen menge von 10 zeichen. wenn meine zahl die ich habe 3 stellen hat soll also vor der zahl mit 7 nullen aufgefüllt werden.
Beispiel:
Zahl: 100
Soll: 0000000100
oder
Zahl: FF
Soll: 00000000FF

EDIT:
hab das mal probiert:
ausblenden C#-Quelltext
1:
2:
int  Value= 255;
string s = "{0:X10}", Value;

gibt aber einen fehler: "Eine lokale Variable mit dem Namen "Value" ist bereits in diesem Bereich definiert"

das hier funktionietrt leider auch nicht (keine fehlermeldung, passiert einfach nichts..)
ausblenden C#-Quelltext
1:
Value.PadLeft(10'0');					


Moderiert von user profile iconTh69: C#-Tags hinzugefügt
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4805
Erhaltene Danke: 1061

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Mo 06.08.12 14:41 
Hallo Ivy,

beide Fehler sind doch wohl offensichtlich - insbesondere der erste: du deklarierst so zwei Variablen (nämlich s und Value). Du wolltest wohl eher
ausblenden C#-Quelltext
1:
string s = String.Format("{0:X10}", Value);					

schreiben.

Mit PadLeft hast du aber m.E. den besseren Ansatz (sofern die Stringlänge variabel sein soll), du mußt halt nur den Rückgabewert verwenden:
ausblenden C#-Quelltext
1:
string paddedValue = Value.PadLeft(10'0');					

bzw. falls Value keine string-Variable ist:
ausblenden C#-Quelltext
1:
string paddedValue = Value.ToString().PadLeft(10'0');					
Marcel#
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Di 07.08.12 08:34 
Jakane
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 257



BeitragVerfasst: Di 07.08.12 10:23 
bei reinen Zahlen (Ziffern 0-9) funktioniert FormatFloat('0000000000', Zahl);
Funktioniert bei Float UND Integer-Zahlen.

Für alles andere würde ich eine kleine For-Schleife machen
ausblenden Quelltext
1:
2:
3:
4:
For f:= 1 to (10 - Length(Zahl)) do
begin
  String:= '0' + String;
end;


Moderiert von user profile iconTh69: Code-Tags hinzugefügt
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4805
Erhaltene Danke: 1061

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Di 07.08.12 10:53 
Hallo Jakane,

als Programmierübung o.k., aber für größere Projekte sollte man doch die Funktionalitäten des .NET-Frameworks benutzen - Stichwort NIH-Syndrom (bzw. das "Rad neu erfinden") ;-)