(.NET) Case methodes

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • YellowOnline
  • Registratie: Januari 2005
  • Laatst online: 28-03-2023

YellowOnline

BEATI PAVPERES SPIRITV

Topicstarter
Eerst en vooral: ik werk in PowerShell. Aangezien onderliggend .NET zit kan ik af en toe methodes lenen uit .NET als ze niet voorzien zijn in PowerShell.

Wat ik echt niet vind is een manier om in PS een woord te laten beginnen met een hoofdletter.

Kleine illustratie, waarbij $foo = "bAr":

$foo.ToUpper geeft "BAR"
$foo.ToLower geeft "bar"

Wat ik wil is "Bar" :) Ik heb zelf al overwogen om zelf een functie te schrijven die dat doet, dwz. ToLower, eerste letter er afknippen, die ToUpper, en er dan weer aanplakken. Ik kan me evenwel moeilijk inbeelden dat dit warm water nog niet uitgevonden is. Bestaat er in .NET geen methode hiervoor?

PS. Google hits zijn 99% discussies over camelCase vs. PascalCase :F

[ Voor 7% gewijzigd door YellowOnline op 10-09-2010 21:49 ]


Acties:
  • 0 Henk 'm!

  • Accesteam
  • Registratie: Maart 2009
  • Laatst online: 16-09 08:35
http://www.google.com/sea...d=opera&ie=utf-8&oe=utf-8

Je moet inderdaad je eigen functie ervoor maken (of eentje uit die google resultaten copy-pasten :P)

Acties:
  • 0 Henk 'm!

  • Sybr_E-N
  • Registratie: December 2001
  • Laatst online: 22:12

Acties:
  • 0 Henk 'm!

  • Accesteam
  • Registratie: Maart 2009
  • Laatst online: 16-09 08:35
*zucht* waar heeft .net geen methode voor? _O-

Acties:
  • 0 Henk 'm!

  • YellowOnline
  • Registratie: Januari 2005
  • Laatst online: 28-03-2023

YellowOnline

BEATI PAVPERES SPIRITV

Topicstarter
Dank u, allen. Ik ben blij te zien dat er een ToTitleCase bestaat (had nooit gedacht dat dat zo zou heten). Nu nog uitvinden hoe het PS wijs te maken en mijn output is weer wat netter :+

code:
1
$objHR."First Name" = (Get-Culture).TextInfo.ToTitleCase(((($objHR."First Name").TrimEnd()).ToLower()).ToString())


Yay *O*

Da's eentje om te bookmarken. De string moet trouwens eerst naar lower omgezet worden - UPPERCASE blijft wat het is anders.

[ Voor 46% gewijzigd door YellowOnline op 10-09-2010 22:17 ]


Acties:
  • 0 Henk 'm!

  • YopY
  • Registratie: September 2003
  • Laatst online: 13-07 01:14
Accesteam schreef op vrijdag 10 september 2010 @ 21:57:
*zucht* waar heeft .net geen methode voor? _O-
Heeft het een ingebouwde 42-generator?

Acties:
  • 0 Henk 'm!

  • Sebazzz
  • Registratie: September 2006
  • Laatst online: 16-09 15:42

Sebazzz

3dp

Accesteam schreef op vrijdag 10 september 2010 @ 21:57:
*zucht* waar heeft .net geen methode voor? _O-
Is dat een probleem? Als je al ziet wat je voor simpele tekstinvoer moet doen in talen zoals Java.
Overigens is het een methode die cultureafhankelijk is, dus in een andere culture heb je mogelijk een andere uitvoer.

[ Voor 18% gewijzigd door Sebazzz op 10-09-2010 23:10 ]

[Te koop: 3D printers] [Website] Agile tools: [Return: retrospectives] [Pokertime: planning poker]


  • farlane
  • Registratie: Maart 2000
  • Laatst online: 16-09 22:43
We reserve the right to make this API slower in the future.
Als ik de documentatie leest bij die functie moet ik een beetje huilen eigenlijk,

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • roy-t
  • Registratie: Oktober 2004
  • Laatst online: 08-09 11:33
farlane schreef op zaterdag 11 september 2010 @ 01:07:
[...]


Als ik de documentatie leest bij die functie moet ik een beetje huilen eigenlijk,
Waarom eigenlijk? Om de community content?

Je 'quote' snap ik niet, meer functionaliteit maakt het .NET framework immer niet langzamer, daar zijn namespaces voor (kort door de bocht).

~ Mijn prog blog!


  • PolarBear
  • Registratie: Februari 2001
  • Niet online
farlane schreef op zaterdag 11 september 2010 @ 01:07:
[...]


Als ik de documentatie leest bij die functie moet ik een beetje huilen eigenlijk,
Quote dan het hele stuk uit de documentatie
As illustrated above, the ToTitleCase method provides an arbitrary casing behavior which is not necessarily linguistically correct. A linguistically correct solution would require additional rules, and the current algorithm is somewhat simpler and faster. We reserve the right to make this API slower in the future.
Men kan er dus voor kiezen om in de toekomst een volledig correct cultuur afhankelijk algoritme te gebruiken, wat waarschijnlijk trager zal zijn dan de huidige versie. Weet niet waarom je daarom zou moeten huilen? Of kan jij het beter?

  • YellowOnline
  • Registratie: Januari 2005
  • Laatst online: 28-03-2023

YellowOnline

BEATI PAVPERES SPIRITV

Topicstarter
't Is logisch dat het trager zou zijn: uiteindelijk klopt de naam TitleCase voor wat het nu doet niet (het is wél in zijn huidge vorm wat ik nodig had), aangezien dan per culture een dictionary geraadpleegd zou moeten worden waardoor lidwoorden e.d. geen hoofdletter krijgen. Dit wordt in de documentatie trouwens geïllustreerd met voorbeeldzinnen in het Engels, Frans en Duits. De complexiteit is meteen van een heel ander niveau, wat logischerwijze gevolgen heeft op de performance.

[ Voor 17% gewijzigd door YellowOnline op 11-09-2010 13:40 ]


  • apokalypse
  • Registratie: Augustus 2004
  • Laatst online: 16-09 21:55
farlane schreef op zaterdag 11 september 2010 @ 01:07:
[...]


Als ik de documentatie leest bij die functie moet ik een beetje huilen eigenlijk,
Mij maakt het juist vrolijk. Dit is eerlijk en er is nagedacht over de toekomst. 8)

code:
1
$objHR."First Name" = (Get-Culture).TextInfo.ToTitleCase(((($objHR."First Name").TrimEnd()).ToLower()).ToString())

Waarom al die haakjes? Dat is toch niet nodig lijkt me?

[ Voor 24% gewijzigd door apokalypse op 11-09-2010 16:13 ]


  • YellowOnline
  • Registratie: Januari 2005
  • Laatst online: 28-03-2023

YellowOnline

BEATI PAVPERES SPIRITV

Topicstarter
apokalypse schreef op zaterdag 11 september 2010 @ 16:11:
[...]

Mij maakt het juist vrolijk. Dit is eerlijk en er is nagedacht over de toekomst. 8)

code:
1
$objHR."First Name" = (Get-Culture).TextInfo.ToTitleCase(((($objHR."First Name").TrimEnd()).ToLower()).ToString())

Waarom al die haakjes? Dat is toch niet nodig lijkt me?
Toegegeven, het kon met iets minder haakjes:

code:
1
 (Get-Culture).TextInfo.ToTitleCase($a.TrimEnd().ToLower().ToString())


Hierbij ga ik wel voorbij aan het feit dat ik de method uitvoer op een NoteProperty (waardoor er toch nog een keer extra haakjes bijmoeten). Enkel de haakjes tussen de verschillende methods waren niet nodig - dat was een restant van de evolutie van mijn code.
Pagina: 1