[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