21. juli 2005 - 18:28Der er
7 kommentarer og 1 løsning
Udskifte / fjerne ugyldige tegn fra en tekststreng
Jeg har en agent som skal kopiere nogle filer på serveren. Agenten er skrevet i LotusScript og jeg kopierer filerne med metoden "FileCopy". Mit problem opstår når det navn filerne skal kopieres til indeholder et bogstav som serveren ikke kender fx ö og á, så stopper agenter.
Det nye navn til filen får jeg fra en tekststreng som er hentet et andet sted. Jeg skal bruge en metode som kan fjerne eller udskifte de ulovlige tegn fra tekststrengen.
Er der nogen der har et godt forslag ??
Jeg skal vel på en eller anden måde også definere hvad der er gyldige bogstaver / karakterer.
Jeg har ikke et komplet overblik over hvilke tegn serveren vil godtage, men jeg tror at den godtager alle tegn fra det engelske tegnsæt (hvis der er noget der hedder det...)
Brugerne skal kunne kende filnanvne igen efter navnet er ændret, derfor må navnet ikke ændres helt. De kan dog godt kende et filnavn selvom et ö er ændret til fx o...
Jeg har et script som ændrer en string til en anden. Men det skal du så kalde for hvert ulovlige tegn (eller bygge videre på). Det kan du godt få. Ellers - hvis du kan tilgå de nye filnavne via @formula, kan du bruge @replacesubstring(sourceList, fromList, toList), som kan ændre alle tegn på een gang (fx @replacesubstring(æøå;"æ":"ø":"å";"ae":"o":"aa"). Sidstnævnte kan du evt. pakke ind i en evaluate i dit script - jeg har bare ikke de bedste erfaringer med evaluate..
Jeg tror ikke at du kan slippe for at skulle kende/definere de ulovlige karakterer på en eller anden vis. Måske ved noget errorhandling, der tester hver karakter, og så ved fejl fjerner det, men det er nok ikke den rette måde at gøre det på.
Tegnene i "det engelske tegnsæt" ligger i nummerorden i ascii tabellen. Du kunne lave et script der gennemgik filnavnene tegn for tegn og erstattede de tegn, hvis ascii værdi ligger uden for dette område med eksempelvis en underscore '_'
Lav en liste der indeholder alle de lovlige tegn og kald den varLovligeTegn. så fyrer du dette af, varUlovligeTegn:=@replacesubstring(filnavn;varLovligeTegn;""); filnavn:=@replacesubstring(filnavn;varUlovligeTegn;"_"); så har du udskiftet alle ulovlige tegn med underscore '_' uden du behøver at kende dem.
ja ovenstående er snabela du må selv bakse med at få det ind i script.
Tak for svaret, det ligner en løsning der kan bruges ;o)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.