it's utf8 use : String.Instr instead Intr
http://gambasdoc.org/help/comp/gb/string/instr 2010/4/28 linus <linu...@club-internet.fr>: > > Hi all, > > I'm using a TextArea in a little project like a Text Editor. > > When I add the part of code to search in the text of this TextArea, I > have a problem during search text whith the command 'instr'. > > In fact, when this command find accented characters, it count 2 > characters instead of 1 and the position of the search at the end it > false. > > Does any body have an explication about this problem please ? > > Joined the code to search in the TextArea > > --------------------------------------------------------------------- > > > Public SAVMARKER as Interger > > > Public Button1_Click() > > SearchTextInEditor(1) > > End > > > PUBLIC SUB SearchTextInEditor(MODE AS Integer) > > ' MODE: 0 => From the beginning of the text > ' MODE: 1 => After the last search > > DIM IndexCarac AS Integer > DIM CaracTexte AS String > DIM IndexRecherche AS Integer > DIM LongueurRecherche AS Integer > > TextBox39.Text = Replace(TextBox39.Text, "\"", "") > TextBox40.text = Replace(TextBox40.text, "\"", "") > > IF TextArea1.Length > 0 THEN > > IF TextBox39.text = "" THEN > Message.Warning(("Please entrer text to search !"), ("Close")) > RETURN > END IF > > Application.Busy = 1 > > SELECT CASE MODE > CASE 0 > ' search from the beginning of the text > SAVMARKER = 0 > IF ToggleButton5.Value = TRUE THEN > ' Use the case sensitive > IndexRecherche = InStr(TextArea1.Text, TextBox39.Text, > SAVMARKER, gb.Text) > ELSE > ' No case sensitive > IndexRecherche = InStr(Lower$(TextArea1.Text), Lower > $(TextBox39.Text), SAVMARKER, gb.Text) > END IF > > IF IndexRecherche > 0 THEN > > $TextEditor.Select(IndexRecherche - 1, Len(TextBox39.Text)) > $TextEditor.EnsureVisible() > SAVMARKER = IndexRecherche + Len(TextBox39.Text) > PRINT "IndexRecherche=" & IndexRecherche > IF SAVMARKER > TextArea1.Length THEN > SAVMARKER = TextArea1.Length > END IF > > LongueurRecherche = Len(TextBox39.Text) > > ELSE > Application.Busy = 0 > Message.Info(("Search finished. End of list attained."), > ("Close")) > RETURN > END IF > > CASE 1 > ' Search following ... > IF ToggleButton5.Value = TRUE THEN > ' Use the case sensitive > IndexRecherche = InStr(TextArea1.Text, TextBox39.Text, > SAVMARKER, gb.Text) > ELSE > ' Ne pas tenir compte de la casse > IndexRecherche = InStr(Lower$(TextArea1.Text), Lower > $(TextBox39.Text), SAVMARKER, gb.Text) > END IF > > IF IndexRecherche > 0 THEN > TextArea1.Select((IndexRecherche - 1), Len(TextBox39.Text)) > SAVMARKER = IndexRecherche + Len(TextBox39.Text) > IF SAVMARKER > TextArea1.Length THEN > SAVMARKER = TextArea1.Length > END IF > > ELSE > Application.Busy = 0 > Message.Info(("Search finished. End of list attained."), > ("Close")) > RETURN > END IF > END SELECT > END IF > > Application.Busy = 0 > > > END > > ----------------------------------------------------------------------------- > > Thank you in advance. > > -- > Olivier CRUILLES > Email: linu...@club-internet.fr > > > > ------------------------------------------------------------------------------ > _______________________________________________ > Gambas-user mailing list > Gambas-user@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/gambas-user > ------------------------------------------------------------------------------ _______________________________________________ Gambas-user mailing list Gambas-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/gambas-user