Hi everyone,
How can i convert popupmenu choosing result… as text to a textEncoding function
s = TextField1.Text.ConvertEncoding(Encodings.(Popupmenu result))
Beside use Select Case… For each encoding possibility
Each way that i’ve tried result to type mismatch error
thanks
Put your code in PopupMenu1.Change, using the (PopupMenu) displayed encoding ?
I’m not sure to understand… Or my question is not clear enough
I want to apply the result of the selection… which is the text encoding possibility TO another text
So i want to convert text selection…to a convert function to apply
Yes my code is in Change event… but
s = TextField1.Text.ConvertEncoding(Encodings.(Popupmenu result.text))
return error of type mismatch… that i understand… because it’s a text and xojo want the encoding object
I do not recall exactly how i’ve done it; maybe I used:
[code]Select Case PopupMenu1.Text
Case UTF-8
// Apply here the UTF8 encoding to the selected text
Case
// and so on
End Select[/code]
After all, above is just some lines of code (unless you absolutely have to use a specific encoding, this millenium default encoding is UTF-8 (IMHO).
I cannot run Xojo right now (all memory used by multiple applications).
Thanks Emile
But i mentioned [quote]Beside use Select Case… For each encoding possibility[/quote]
I search for a shortcut to assign automatically the chosen encoding
@Denis Despres You cannot use directly the name from your popup. However, you may use the internetName and use it to retrieve the corresponding encoding with:
Function FindEncoding( withName as String ) as TextEncoding
for i as integer=0 to Encodings.Count - 1
if Encodings.Item( i ).internetName=withName then
return Encodings.Item( i )
end if
End Function
UNTESTED:
The popupmenu has rows.
Each row has a rowtag
A rowtag is a variant
If you addrow with the NAME of the encoding, then set the popup.rowtag(popup.lastindex) =
You may be able to get the ROWTAG back from the popup, and use that directly.
@Stphane Mons
Thanks it work… partially
The list of Encodings.Item( i ).internetName didn’t contain all encoding ( or the name’s doesn’t match )
specially the one that i need… DosLatin1
@Denis Despres Well it does contain it, but not with this name. Look at Encodings.DosLatin1.InternetName to see its internet name (well, according to Xojo)
Great !!
Thank you
Nahhh not very convenient !
Convert from popupmenu.text TO ( find matching internetName )… then convert i to TextEncoding
The Select Case listing is faster to code
If you populated the popup with:
popupEncoding.DeleteAllRows
for i as integer = 0 to Encodings.Count-1
popupEncoding.AddRow Encodings.Item(i).internetName
next
Then you can get the correct encoding chosen in popup with
enc=Encodings.Item(popupEncoding.ListIndex)
By the way, DOSLatin1 is cp850