Hej! EDIT: Tar tillbaka detta. Jag vill men inte hjärnan då jag skrev det... Gjorde någon korstanke mellan replace och insert...fråga inte varför. Helt snurrigt... (troligen en seg dag!) du kan använda PadLeft Just det går oxå. Kanske smartare, vet ej vilket som tar längst tid. Johan: kommer inte strängen att bli lite skum då? mm, skrev att PadLeft var nog smaratare :-) hehehe... jag gjorde en lite jämförelse och det verkar som om min metod ovan och PadLeft är exakt lika snabba så de ligger nog nära optimum båda två... Kul. :-) Har du testat med oliak längder typ 100 tecken? Skulle vara intressant o se hur det blir, även om jag inte gillade mitt korkade förslag med Insert. DÅ jag tänkte att den skulle ersätta alla nollor från start med värdedatan.Fylla ut sträng
När man skickar lagerrapporter till vårt affärssystem måste fältet "Butiknummer" vara på 8 tecken, eftersom våra butiksnummer är 4 siffriga måste man fylla ut med nollor från vänster
Tex 1023 skall bli 00001023
Idag har jag en loop som använder sig av len(butiksnummer) för att kolla om variblen är 8 tecken annars lägger den på "0" i början och loopar tills strängen är 8 tecken. Det känns som om detta är krävande för servern när man har ett gäng fält som måste formateras liknande. Finns det en snyggare lösning?
Tacksan för svar!
peterSv: Fylla ut sträng
Mvh JohanSv: Fylla ut sträng
string str="1023";
str=str.PadLeft(8,'0');//innehåller nu 00001023
Sv: Fylla ut sträng
Men sätt då 8an i en global variabel så du enkelt kan ändra dess längd i framtiden om så behövs.
int TOTAL_NUMBER_LENGTH = 8;
....
public string MakeValidNumber(string value)
{
return ( value.PadLeft(TOTAL_NUMBER_LENGTH,'0');
}
Mvh JohanSv: Fylla ut sträng
string str2="00000000";
string str="1023";
str=str2.Insert(str2.Length-str.Length,str);
resultatet kommer ju bli 000010230000...
i så fall får man ju göra typ:
string str2="00000000";
string str="1023";
int pos=str2.Length-str.Length;
str=str2.Insert(pos,str).Substring(0,pos+str.Length);
vilket för läsbarhetens skull borde förenklas med padleft ;-)
Sv: Fylla ut sträng
Tänkte lite fel ang Insert oxå, fråga mig inte varför men jag tänkte på den som om den vore en replace... Har nog med att arbetsdagen lutar mot sitt slut. Inte alltid cellerna är på plats :-)
Mvh JohanSv: Fylla ut sträng
Sv: Fylla ut sträng
Båda använder sig av en intern rutin. PadLeft kanske gör inserts och på så vis går det lika fort för att overheaden att göra Insert med subrstring tog lika lång tid som Padleft att köra x antal Inserts...
Nu bara jeg leker med mitt trötta huvud... Tåget går om 30 min, skall bli skönt o komma hem snart.
Mvh Johan