Avatar billede palle1976 Nybegynder
21. juli 2005 - 18:28 Der 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.
Avatar billede pr0gm4n Nybegynder
22. juli 2005 - 10:20 #1
Har det et overblik over hvilke tegn som din server vil godtage?

Og hvorledes kan det være at du kan 'leve med' at filnavnene ændres; men ikke at de får nogle helt andre navne?
Avatar billede palle1976 Nybegynder
22. juli 2005 - 10:29 #2
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...
Avatar billede mmmtm Nybegynder
22. juli 2005 - 11:46 #3
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..
Avatar billede palle1976 Nybegynder
22. juli 2005 - 11:52 #4
Det har jeg også selv lavet, men problemet er at jeg selv skal kende alle de ulovlige karakterer... det er det jeg gerne vil undgå.
Avatar billede mmmtm Nybegynder
22. juli 2005 - 12:18 #5
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å.
Avatar billede pr0gm4n Nybegynder
22. juli 2005 - 22:17 #6
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 '_'
Avatar billede bokodekarl Nybegynder
25. august 2005 - 12:36 #7
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.
Avatar billede palle1976 Nybegynder
25. august 2005 - 13:34 #8
Tak for svaret, det ligner en løsning der kan bruges ;o)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester