Har en produktdatabas, och för varje produkt finns en sk headline vilket är en beskrivande kortare text(rad) för produkten.
Dessa rader kopieras vanligtvis från produkternas datablad, och där uppstår problemet.
Det som t ex kan se ut såhär på databladet:
152 - 200W 4:1 MULTI OUTPUT DC/DC CONVERTER eller
70 Watt Universal 2-Wire Input Industrial Adapter
Ser, när man kopierar det och klistrar in någon annanstans, ut såhär:
1 5 2 - 2 0 0 W 4 : 1 M U L T I O U T P U T D C / D C C O N V E R T E R eller
7 0 W a t t U n i v e r s a l 2 - W i r e I n p u t I n d u s t r i a l A d a p t e r
Problemet med mellanrummen mellan bokstäverna gäller en (1) leverantör, så det blir inte alltid såhär, men den leverantören är också den största (såklart) och flest datablad kommer därifrån.
Raderna kan alltså se olika ut, beroende på vilken leverantörs datablad de kommer från. Ibland är det stora bokstäver, ibland små, ibland ok formatering och ibland...inte.
Det nogranna sättet hade självfallet varit att gå igenom databasen, rad för rad, och rätta till men.....det finns flera tusen produkter. Nya produkter läggs in korrekt, men de är de gamla som ställer till det.
En början är kanske att göra allt till versaler för att åtminstone få det (mer) likt, men hur fasen löser man det där med mellanrummen mellan varje frikkin bokstav för den här enda leverantören?
Man kan ju inte bara köra replace på " ", för då tappar man ju orden också och allt blir en enda lång rad av bokstäver utan mellanrum.
Är det någon som har förslag så mottages dessa tacksamt!
FunctionGetCorrectNaming(str)
Dim myRegExp, ResultString
Set myRegExp = New RegExp
myRegExp.Global = True
myRegExp.Pattern = " ([^A-ZÅÄÖ])"
GetCorrectNaming= myRegExp.Replace(str, "$1")
Set myRegExp = Nothing
End Function
Är för att lösa problemet att ta bort alla mellanslag framför alla bokstäver som inte är versaler.
Problemet är:
1 5 2 - 2 0 0 W 4 : 1 M U L T I O U T P U T D C / D C C O N V E R T E R
Och när det är ett tal mellan ord som:
hej1 2test ( h e j 1 2 t e s t)
Det är extremt svårt att lösa det utan man vet faktiskt skall stå, om man inte har någon ordbok eller liknande.
Mellanrummen känns som teckenkodningsproblem. Den leverantören kör högst troligen med Unicode, eller UTF-16, dvs använder två byte (16 bitar) per tecken.
263 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25