Close

Formatera strängar i C#

Har under kvällen roat mig med att börja skriva om mitt återanvändningsbara bibliotek med kod. Denna kod har jag exempelvis bakom denna sajt, använder som inspiration på jobbet när ett problem verkar bekant eller om jag bara letar kodexemplet, och delar ut till det fåtalet jag känner som faktiskt har något att lära av mig när det gäller C# 😀

Förutom att jag aldrig kan bestämma mig vad varken assemblyn eller namespacet ska heta låg där en del grejer som behövde uppdateras. Nu är det i alla fall på gång att bli ett namespace med struktur för vad det handlar om för kod. Än så länge har jag kommit till att dessa saker behöver delas upp i mitt bibliotek:

  • namespace.Util innehåller:
    • Encode och Decode för XHTML entities (är inte säker på om jag verkligen behöver detta?)
    • LeftBack och Rightback för att klippa i textsträngar.
      Namngivningen skvallrar nog en aning om min bakgrund som utvecklare med IBM Lotus Domino som plattform. Grejen är att SubString inte riktigt gör vad jag vill kort nog, antagligen saknar latmasken i mig Lotus Notes Formula-språket 🙂
    • Array- och listhantering är på gång. Mest blir det väl att plocka mapp- och filnamn från filsystemet och baka ihop till listor att returnera.
    • Datum-grejer. Som att plocka vecka från ett datum som jag inte förstår hur det saknas i DateTime, eller är det fel på min IntelliSense i VS?
    • Booleaner. I stil med om saker är ett nummer eller e-postadress enligt korrekt & trovärdigt format.
  • namespace.Security innehåller:
    • En konstant för ett statiskt salt till kryptografi.
    • Hashning av lösenord, med eller utan dynamiskt salt.
    • Hashning av lösenord, med dynamiskt salt angivet i web.config enligt nyckel som indata.
  • namespace.Dbase har jag inte flyttat än, men den har grejer jag säkert kommer skrota när jag listat ut det där med DAL.
  • namespace.Graphics är inte flyttat, men innehåller sätt att plocka fram EXIF ur bilder, skapa tumnaglar etc.
  • namespace.Language flyttas nog snart. Innehåller sätt att använda egna språkfiler

Det jag definitivt saknar och lär bygga för eller senare är en återvinningsbar abstraktion av datalager, bland annat vore det sweet om man kunde dela på en anslutning för serverns connectionpool eller hur jag nu ska lösa detta, och så vill jag skapa ett PageDate-objekt för denna webbplats mer för att lära mig hur jag vill ha det.

Är det något du saknar ovan?
Vad är det nyttigaste du använt i ett eget, eller någon annans, kodbibliotek?

Samtidigt som jag kodar om det jag vet hur det borde se ut kollar jag in vad andra lagt ut på nätet. En tankenöt som visade sig precis så uppenbar som det alltid verkar när man tar sig tid var hur man formaterar större tal så att siffrorna grupperas tre och tre. En ledtråd på vägen hittade jag på bloggen SteveX Compiled i inlägget String Formatting in C#.

Kodexempel

public string NumberSpacing(object input) {
	return String.Format("{0:### ### ### ### ### ###}", Convert.ToString(input));
}

Om man anropar på följande sätt någon annanstans i koden:

int stortTal = 7816459;
string medMellanslag = NumberSpacing(stortTal);

Kommer variabeln medMellanslag innehålla följande textsträng: 7 816 459

Detta hade jag haft nytta av för att snygga till vissa siffror när mitt tidigare projekt festivalinfo.se började ha anledning att hålla ordning på besökarstatistiska siffror över 1 miljon.

När jag känner mig nöjd med biblioteket kommer jag nog låta den delen vila en stund och fortsätta med AJAX-grejerna (accordion, tabbar, auto-complete etc), Google Maps, min geodata och kanske läsa på lite om .NET Generics.

Leave a Reply

Your email address will not be published. Required fields are marked *

Denna webbplats använder Akismet för att minska skräppost. Lär dig hur din kommentardata bearbetas.