[Gambas-user] string conversion
Matti
math.eber at ...221...
Thu Nov 12 21:57:22 CET 2009
Hi Dimitris,
first thought: an array is a nice idea.
But, second thought, I would have to define all those äöüß...characters that could occur in filenames.
So, I think, the Asc(sChar) > 122 checking is easier.
Matti
Dimitris Anogiatis schrieb:
> Hey Matti,
>
> you might want to roll a string conversion function of your own.
> The Replace function might be of particular use to you.
>
> You can read about it over here
> http://www.gambasdoc.org/help/lang/replace
>
> and you can also find all the other string related functions over here
> http://www.gambasdoc.org/help/cat/string
>
> if for example you want to replace all the spaces in your string with %20
> you would call
>
> 'String array that will hold the characters you want to replace
> Dim tmpChar as NEW String[]
> Dim iterator as Integer
> Dim sFilename as String
>
> 'the value of your sFilename
> sFilename = "/home/username/Meine Bilder/öffentliche Fotos übertragen/015
> das Schönste.jpg"
>
> 'Add the characters you want to replace
> tmpChar.Add("ö")
> tmpChar.Add("ü")
>
> 'Loop through the array and replace the string characters that correspond to
> the array characters
> 'with their hexadecimal values precedded by a % sign
> FOR iterator = 0 to tmpChar.Count -1
>
> 'set the string equal to the resulting string from the Replace$ Function
> sFilename = Replace$( sFilename,tmpChar[iterator],"%" &
> Hex$(Asc(tmpChar[iterator])))
>
> NEXT
>
> 'to show you the finished string
> PRINT sFilename
>
> so you could also just make a small array with all the characters you want
> to
> change and then do a sequence of Replace$ calls replacing them with
>
>
> I hope these guidelines help you more (and confuse you less)
>
> Regards
> Dimitris
>
>
> On Thu, Nov 12, 2009 at 1:14 PM, Matti <math.eber at ...221...> wrote:
>
>> Well, after some thoughts, I can answer myself.
>>
>> I tried this example:
>>
>> sFilename = "/home/username/Meine Bilder/öffentliche Fotos übertragen/015
>> das Schönste.jpg"
>> i = 1
>> WHILE i < Len(sFilename)
>> sChar = Mid$(sFilename, i, 1)
>> IF Asc(sChar) > 122 THEN
>> sFilename = Left$(sFilename, i - 1) & "%" & Hex$(Asc(sChar)) &
>> Right$(sFilename, Len(sFilename) - i)
>> ELSE IF sChar = " " THEN
>> sFilename = Replace$(sFilename, " ", "%20")
>> ENDIF
>> i = i + 1
>> WEND
>> sOut = "file://" & sFilename
>> PRINT sOut
>>
>> and it seems to work ok and reasonably fast.
>> But if you have better ideas, you're welcome!
>>
>>
>>
>> Matti schrieb:
>>> Hi,
>>>
>>> I'm looking for a string conversion function for URIs.
>>> It should work like CGI.Encode, but
>>> - don't transform slashes "/"
>>> - transform spaces " " not to "+" but to "%20".
>>>
>>> Couldn't find anything in Gambas. Maybe a shell command?
>>>
>>> Thanks
>>> Matti
More information about the User
mailing list