'SQL query based on the search text
Dim DR As ResultSet = sql1.ExecQuery2("SELECT * FROM dt_Country WHERE name LIKE ? ORDER BY name ASC",Array As String("%" & SearchText & "%"))
I have problem how to code continue (after sorted)
Sub Process_Globals
Type CountryType(EnglishName As String, ThaiName As String, ThaiSortCode As String)
End Sub
Sub ThaiSortCode(ThaiName As String) As String
Return (100 + ThaiName.Length) & " " & ThaiName 'dummy example to generate thai sort code from thai name
End Sub
Sub AppStart (Args() As String)
Dim TestCountries() As String = Array As String( _
"English", "Thai", _
"Malaysia", "มาเลเซีย", _
"Canada", "แคนาดา", _
"Germany", "เยอรมนี", _
"Thailand", "ไทย", _
"UK", "สหราชอาณาจักร", _
"Spain"...
I think that I must create a new list after using getThaiComparisonString(String s) module before, but not using compare(String s1, String S2) module
I have problem how to code continue (after sorted)
Sub Process_Globals
Type CountryType(EnglishName As String, ThaiName As String, ThaiSortCode As String)
End Sub
Sub ThaiSortCode(ThaiName As String) As String
Return (100 + ThaiName.Length) & " " & ThaiName 'dummy example to generate thai sort code from thai name
End Sub
Sub AppStart (Args() As String)
Dim TestCountries() As String = Array As String( _
"English", "Thai", _
"Malaysia", "มาเลเซีย", _
"Canada", "แคนาดา", _
"Germany", "เยอรมนี", _
"Thailand", "ไทย", _
"UK", "สหราชอาณาจักร", _
"Spain", "สเปน", _
"France", "ฝรั่งเศส", _
"USA", "สหรัฐอเมริกา", _
"Israel", "อิสราเอล", _
"Italy", "อิตาลี", _
"Australia", "ออสเตรเลีย" _
)
Dim MyList As List
MyList.Initialize
For I = 2 To TestCountries.Length - 1 Step 2
Dim Country As CountryType
Country.EnglishName = TestCountries(I)
Country.ThaiName = TestCountries(I + 1)
Country.ThaiSortCode = ThaiSortCode(Country.ThaiName)
MyList.Add(Country)
Next
For Each SortField As String In Array As String("EnglishName", "ThaiName", "ThaiSortCode")
MyList.SortType(SortField, True)
Log(Chr(160)) 'blank line
Log("===== Countries sorted by " & SortField & " field =====")
For Each C As CountryType In MyList
Log(C.EnglishName & TAB & C.ThaiName & TAB & C.ThaiSortCode)
Next
Next
End Sub
Waiting for debugger to connect...
Program started.
===== Countries sorted by EnglishName field =====
Australia ออสเตรเลีย 110 ออสเตรเลีย
Canada แคนาดา 106 แคนาดา
France ฝรั่งเศส 108 ฝรั่งเศส
Germany เยอรมนี 107 เยอรมนี
Israel อิสราเอล 108 อิสราเอล
Italy อิตาลี 106 อิตาลี
Malaysia มาเลเซีย 108 มาเลเซีย
Spain สเปน 104 สเปน
Thailand ไทย 103 ไทย
UK สหราชอาณาจักร 113 สหราชอาณาจักร
USA สหรัฐอเมริกา 112 สหรัฐอเมริกา
===== Countries sorted by ThaiName field =====
France ฝรั่งเศส 108 ฝรั่งเศส
Malaysia มาเลเซีย 108 มาเลเซีย
USA สหรัฐอเมริกา 112 สหรัฐอเมริกา
UK สหราชอาณาจักร 113 สหราชอาณาจักร
Spain สเปน 104 สเปน
Australia ออสเตรเลีย 110 ออสเตรเลีย
Italy อิตาลี 106 อิตาลี
Israel อิสราเอล 108 อิสราเอล
Germany เยอรมนี 107 เยอรมนี
Canada แคนาดา 106 แคนาดา
Thailand ไทย 103 ไทย
===== Countries sorted by ThaiSortCode field =====
Thailand ไทย 103 ไทย
Spain สเปน 104 สเปน
Italy อิตาลี 106 อิตาลี
Canada แคนาดา 106 แคนาดา
Germany เยอรมนี 107 เยอรมนี
France ฝรั่งเศส 108 ฝรั่งเศส
Malaysia มาเลเซีย 108 มาเลเซีย
Israel อิสราเอล 108 อิสราเอล
Australia ออสเตรเลีย 110 ออสเตรเลีย
USA สหรัฐอเมริกา 112 สหรัฐอเมริกา
UK สหราชอาณาจักร 113 สหราชอาณาจักร
the post that followed will get you to the finish line!I think
Thank you for your replies, but it still be not correct. I will come back on Tuesday because I have to go to court. To decide the lawsuit in the case of a fatal car crash which I did not commit.(mycar is red)Use something like this to test your country name to sort string function:
B4X:Sub Process_Globals Type CountryType(English As String, Thai As String, ThaiSortCode As String) End Sub Sub ThaiSortCode(Thai As String) As String Return Rnd(100, 200) & " " & Thai 'dummy example to generate thai sort code from thai name End Sub Sub AppStart (Args() As String) Dim Countries() As String = Array As String( _ "English", "Thai", _ "Malaysia", "มาเลเซีย", _ "Canada", "แคนาดา", _ "Germany", "เยอรมนี", _ "Thailand", "ไทย", _ "UK", "สหราชอาณาจักร", _ "Spain", "สเปน", _ "France", "ฝรั่งเศส", _ "USA", "สหรัฐอเมริกา", _ "Israel", "อิสราเอล", _ "Italy", "อิตาลี", _ "Australia", "ออสเตรเลีย" _ ) Dim MyList As List MyList.Initialize For I = 2 To Countries.Length - 1 Step 2 Dim Country As CountryType Country.English = Countries(I) Country.Thai = Countries(I + 1) Country.ThaiSortCode = ThaiSortCode(Country.Thai) MyList.Add(Country) Next For Each SF As String In Array As String("English", "Thai", "ThaiSortCode") MyList.SortType(SF, True) Log(Chr(160)) 'blank line Log("===== Countries sorted by " & SF & " field =====") For Each C As CountryType In MyList Log(C.English & TAB & C.Thai & TAB & C.ThaiSortCode) Next Next End Sub
Log output:Waiting for debugger to connect... Program started. ===== Countries sorted by English field ===== Australia ออสเตรเลีย 134 ออสเตรเลีย Canada แคนาดา 195 แคนาดา France ฝรั่งเศส 166 ฝรั่งเศส Germany เยอรมนี 104 เยอรมนี Israel อิสราเอล 168 อิสราเอล Italy อิตาลี 196 อิตาลี Malaysia มาเลเซีย 185 มาเลเซีย Spain สเปน 146 สเปน Thailand ไทย 195 ไทย UK สหราชอาณาจักร 196 สหราชอาณาจักร USA สหรัฐอเมริกา 197 สหรัฐอเมริกา ===== Countries sorted by Thai field ===== France ฝรั่งเศส 166 ฝรั่งเศส Malaysia มาเลเซีย 185 มาเลเซีย USA สหรัฐอเมริกา 197 สหรัฐอเมริกา UK สหราชอาณาจักร 196 สหราชอาณาจักร Spain สเปน 146 สเปน Australia ออสเตรเลีย 134 ออสเตรเลีย Italy อิตาลี 196 อิตาลี Israel อิสราเอล 168 อิสราเอล Germany เยอรมนี 104 เยอรมนี Canada แคนาดา 195 แคนาดา Thailand ไทย 195 ไทย ===== Countries sorted by ThaiSortCode field ===== Germany เยอรมนี 104 เยอรมนี Australia ออสเตรเลีย 134 ออสเตรเลีย Spain สเปน 146 สเปน France ฝรั่งเศส 166 ฝรั่งเศส Israel อิสราเอล 168 อิสราเอล Malaysia มาเลเซีย 185 มาเลเซีย Canada แคนาดา 195 แคนาดา Thailand ไทย 195 ไทย UK สหราชอาณาจักร 196 สหราชอาณาจักร Italy อิตาลี 196 อิตาลี USA สหรัฐอเมริกา 197 สหรัฐอเมริกา
I will come back on Tuesday
Sub Process_Globals
Type FourStringsType(Original As String, English As String, Thai As String, ThaiSortCode As String)
' Define constants for Thai characters
Private SARA_E As Int = 0x0E40
Private SARA_AI_MAIMALAI As Int = 0x0E44
Private MAITAIKHU As Int = 0x0E47
Private THANTHAKHAT As Int = 0x0E4C
End Sub
' Function to check if a character is a leading vowel
Private Sub IsLeadingVowel(C As Char) As Boolean
Dim CodePoint As Int = Asc(c)
Return CodePoint >= SARA_E And CodePoint <= SARA_AI_MAIMALAI
End Sub
' Function to check if a character is a tone mark
Private Sub IsToneMark(C As Char) As Boolean
Dim CodePoint As Int = Asc(c)
Return CodePoint >= MAITAIKHU And CodePoint <= THANTHAKHAT
End Sub
' Function to get a Thai comparison string
Private Sub GetThaiComparisonString(s As String) As String
'''Dim chars() As Char = s.ToCharArray
Dim chars(s.Length) As Char
For I = 0 To s.Length - 1
chars(I) = s.CharAt(I)
Next
' Swap all leading vowels with the next character
For i = 0 To chars.Length - 2 ' -2 because we're swapping two chars at once
If IsLeadingVowel(chars(i)) Then
Dim temp As Char = chars(i)
chars(i) = chars(i + 1)
chars(i + 1) = temp
i = i + 1 ' Skip the next character since it's been swapped
End If
Next
Dim head As String = ""
Dim tail As String = "00"
' Build comparison string
For i = 0 To chars.Length - 1
If IsToneMark(chars(i)) Then
Dim pos As Int = chars.Length - i
If pos >= 10 Then
tail = tail & pos
Else
tail = tail & "0" & pos
End If
tail = tail & chars(i)
Else
head = head & chars(i)
End If
Next
Return head & tail
End Sub
Sub AppStart (Args() As String)
Dim TestData() As String = Array As String( _
"English", "Thai", _
"go", "โก", _
"go", "โก่", _
"stylish", "โก้", _
"gangster", "โก๋", _
"sickle", "เคียว", _
"stir", "เคี่ยว", _
"chew", "เคี้ยว", _
"support", "จุน", _
"poke", "จุ่น", _
"touch", "จุ้น", _
"throw", "ปา", _
"forest", "ป่า", _
"aunt", "ป้า", _
"dad", "ป๋า", _
"cliff", "ผา", _
"cut", "ผ่า", _
"cloth", "ผ้า", _
"play", "เลน", _
"play", "เล็น", _
"play", "เล่น", _
"shimmer", "วาว", _
"kite", "ว่าว", _
"wow", "ว้าว", _
"yuck", "โอ้ก", _
"yuck", "โอ๊ก", _
"noodle soup", "กวยจั๊บ", _
"noodle soup", "ก๋วยจับ", _
"noodles", "ก๊วยเตี๋ยว", _
"noodles", "ก๋วยเตี๋ยว", _
"bitter", "ขมขื่น", _
"rape", "ข่มขืน", _
"gold-plated", "ลงทอง", _
"settle down", "ลงท้อง", _
"empty", "โล่งโต้ง", _
"empty", "โล้งโต้ง" _
)
Dim MyList As List
MyList.Initialize
For I = 2 To TestData.Length - 1 Step 2
Dim FourStrings As FourStringsType
FourStrings.Original = NumberFormat(I / 2, 2, 0)
FourStrings.English = TestData(I)
FourStrings.Thai = TestData(I + 1)
FourStrings.ThaiSortCode = GetThaiComparisonString(FourStrings.Thai)
MyList.Add(FourStrings)
Next
For Each SortField As String In Array As String("Original", "English", "Thai", "ThaiSortCode")
MyList.SortType(SortField, True)
Log(Chr(160)) 'blank line
Log("===== Sorted by " & SortField & " field =====")
For Each FS As FourStringsType In MyList
Log(LSET(FS.Original, 10) & LSET(FS.English, 20) & LSET(FS.Thai, 20) & FS.ThaiSortCode)
Next
Next
End Sub
' function to pad a string to a specified length with spaces
Sub LSET(S As String, L As Int) As String
Dim Temp As String = S
Do While Temp.Length < L
Temp = Temp & " "
Loop
Return Temp
End Sub
Waiting for debugger to connect...
Program started.
===== Sorted by Original field =====
01 go โก กโ00
02 go โก่ กโ0001่
03 stylish โก้ กโ0001้
04 gangster โก๋ กโ0001๋
05 sickle เคียว คเียว00
06 stir เคี่ยว คเียว0003่
07 chew เคี้ยว คเียว0003้
08 support จุน จุน00
09 poke จุ่น จุน0002่
10 touch จุ้น จุน0002้
11 throw ปา ปา00
12 forest ป่า ปา0002่
13 aunt ป้า ปา0002้
14 dad ป๋า ปา0002๋
15 cliff ผา ผา00
16 cut ผ่า ผา0002่
17 cloth ผ้า ผา0002้
18 play เลน ลเน00
19 play เล็น ลเน0002็
20 play เล่น ลเน0002่
21 shimmer วาว วาว00
22 kite ว่าว วาว0003่
23 wow ว้าว วาว0003้
24 yuck โอ้ก อโก0002้
25 yuck โอ๊ก อโก0002๊
26 noodle soup กวยจั๊บ กวยจับ0002๊
27 noodle soup ก๋วยจับ กวยจับ0006๋
28 noodles ก๊วยเตี๋ยว กวยตเียว0009๊03๋
29 noodles ก๋วยเตี๋ยว กวยตเียว0009๋03๋
30 bitter ขมขื่น ขมขืน0002่
31 rape ข่มขืน ขมขืน0005่
32 gold-plated ลงทอง ลงทอง00
33 settle down ลงท้อง ลงทอง0003้
34 empty โล่งโต้ง ลโงตโง0006่02้
35 empty โล้งโต้ง ลโงตโง0006้02้
===== Sorted by English field =====
13 aunt ป้า ปา0002้
30 bitter ขมขื่น ขมขืน0002่
07 chew เคี้ยว คเียว0003้
15 cliff ผา ผา00
17 cloth ผ้า ผา0002้
16 cut ผ่า ผา0002่
14 dad ป๋า ปา0002๋
34 empty โล่งโต้ง ลโงตโง0006่02้
35 empty โล้งโต้ง ลโงตโง0006้02้
12 forest ป่า ปา0002่
04 gangster โก๋ กโ0001๋
01 go โก กโ00
02 go โก่ กโ0001่
32 gold-plated ลงทอง ลงทอง00
22 kite ว่าว วาว0003่
26 noodle soup กวยจั๊บ กวยจับ0002๊
27 noodle soup ก๋วยจับ กวยจับ0006๋
28 noodles ก๊วยเตี๋ยว กวยตเียว0009๊03๋
29 noodles ก๋วยเตี๋ยว กวยตเียว0009๋03๋
18 play เลน ลเน00
19 play เล็น ลเน0002็
20 play เล่น ลเน0002่
09 poke จุ่น จุน0002่
31 rape ข่มขืน ขมขืน0005่
33 settle down ลงท้อง ลงทอง0003้
21 shimmer วาว วาว00
05 sickle เคียว คเียว00
06 stir เคี่ยว คเียว0003่
03 stylish โก้ กโ0001้
08 support จุน จุน00
11 throw ปา ปา00
10 touch จุ้น จุน0002้
23 wow ว้าว วาว0003้
24 yuck โอ้ก อโก0002้
25 yuck โอ๊ก อโก0002๊
===== Sorted by Thai field =====
26 noodle soup กวยจั๊บ กวยจับ0002๊
28 noodles ก๊วยเตี๋ยว กวยตเียว0009๊03๋
27 noodle soup ก๋วยจับ กวยจับ0006๋
29 noodles ก๋วยเตี๋ยว กวยตเียว0009๋03๋
30 bitter ขมขื่น ขมขืน0002่
31 rape ข่มขืน ขมขืน0005่
08 support จุน จุน00
09 poke จุ่น จุน0002่
10 touch จุ้น จุน0002้
11 throw ปา ปา00
12 forest ป่า ปา0002่
13 aunt ป้า ปา0002้
14 dad ป๋า ปา0002๋
15 cliff ผา ผา00
16 cut ผ่า ผา0002่
17 cloth ผ้า ผา0002้
32 gold-plated ลงทอง ลงทอง00
33 settle down ลงท้อง ลงทอง0003้
21 shimmer วาว วาว00
22 kite ว่าว วาว0003่
23 wow ว้าว วาว0003้
05 sickle เคียว คเียว00
06 stir เคี่ยว คเียว0003่
07 chew เคี้ยว คเียว0003้
18 play เลน ลเน00
19 play เล็น ลเน0002็
20 play เล่น ลเน0002่
01 go โก กโ00
02 go โก่ กโ0001่
03 stylish โก้ กโ0001้
04 gangster โก๋ กโ0001๋
34 empty โล่งโต้ง ลโงตโง0006่02้
35 empty โล้งโต้ง ลโงตโง0006้02้
24 yuck โอ้ก อโก0002้
25 yuck โอ๊ก อโก0002๊
===== Sorted by ThaiSortCode field =====
26 noodle soup กวยจั๊บ กวยจับ0002๊
27 noodle soup ก๋วยจับ กวยจับ0006๋
28 noodles ก๊วยเตี๋ยว กวยตเียว0009๊03๋
29 noodles ก๋วยเตี๋ยว กวยตเียว0009๋03๋
01 go โก กโ00
02 go โก่ กโ0001่
03 stylish โก้ กโ0001้
04 gangster โก๋ กโ0001๋
30 bitter ขมขื่น ขมขืน0002่
31 rape ข่มขืน ขมขืน0005่
05 sickle เคียว คเียว00
06 stir เคี่ยว คเียว0003่
07 chew เคี้ยว คเียว0003้
08 support จุน จุน00
09 poke จุ่น จุน0002่
10 touch จุ้น จุน0002้
11 throw ปา ปา00
12 forest ป่า ปา0002่
13 aunt ป้า ปา0002้
14 dad ป๋า ปา0002๋
15 cliff ผา ผา00
16 cut ผ่า ผา0002่
17 cloth ผ้า ผา0002้
32 gold-plated ลงทอง ลงทอง00
33 settle down ลงท้อง ลงทอง0003้
18 play เลน ลเน00
19 play เล็น ลเน0002็
20 play เล่น ลเน0002่
34 empty โล่งโต้ง ลโงตโง0006่02้
35 empty โล้งโต้ง ลโงตโง0006้02้
21 shimmer วาว วาว00
22 kite ว่าว วาว0003่
23 wow ว้าว วาว0003้
24 yuck โอ้ก อโก0002้
25 yuck โอ๊ก อโก0002๊
I don't know how to sort the data.
===== Sorted by ThaiSortCode field =====
26 noodle soup กวยจั๊บ กวยจับ0002๊
27 noodle soup ก๋วยจับ กวยจับ0006๋
28 noodles ก๊วยเตี๋ยว กวยตเียว0009๊03๋
29 noodles ก๋วยเตี๋ยว กวยตเียว0009๋03๋
01 go โก กโ00
02 go โก่ กโ0001่
03 stylish โก้ กโ0001้
04 gangster โก๋ กโ0001๋
30 bitter ขมขื่น ขมขืน0002่
31 rape ข่มขืน ขมขืน0005่
05 sickle เคียว คเียว00
06 stir เคี่ยว คเียว0003่
07 chew เคี้ยว คเียว0003้
08 support จุน จุน00
09 poke จุ่น จุน0002่
10 touch จุ้น จุน0002้
11 throw ปา ปา00
12 forest ป่า ปา0002่
13 aunt ป้า ปา0002้
14 dad ป๋า ปา0002๋
15 cliff ผา ผา00
16 cut ผ่า ผา0002่
17 cloth ผ้า ผา0002้
32 gold-plated ลงทอง ลงทอง00
33 settle down ลงท้อง ลงทอง0003้
18 play เลน ลเน00
19 play เล็น ลเน0002็
20 play เล่น ลเน0002่
34 empty โล่งโต้ง ลโงตโง0006่02้
35 empty โล้งโต้ง ลโงตโง0006้02้
21 shimmer วาว วาว00
22 kite ว่าว วาว0003่
23 wow ว้าว วาว0003้
24 yuck โอ้ก อโก0002้
25 yuck โอ๊ก อโก0002๊
Your code is correct, but I can't learn yourcode, so it make me be confused.Is the Thai writing here, in the third column, sorted correctly? :
Log output:===== Sorted by ThaiSortCode field ===== 26 noodle soup กวยจั๊บ กวยจับ0002๊ 27 noodle soup ก๋วยจับ กวยจับ0006๋ 28 noodles ก๊วยเตี๋ยว กวยตเียว0009๊03๋ 29 noodles ก๋วยเตี๋ยว กวยตเียว0009๋03๋ 01 go โก กโ00 02 go โก่ กโ0001่ 03 stylish โก้ กโ0001้ 04 gangster โก๋ กโ0001๋ 30 bitter ขมขื่น ขมขืน0002่ 31 rape ข่มขืน ขมขืน0005่ 05 sickle เคียว คเียว00 06 stir เคี่ยว คเียว0003่ 07 chew เคี้ยว คเียว0003้ 08 support จุน จุน00 09 poke จุ่น จุน0002่ 10 touch จุ้น จุน0002้ 11 throw ปา ปา00 12 forest ป่า ปา0002่ 13 aunt ป้า ปา0002้ 14 dad ป๋า ปา0002๋ 15 cliff ผา ผา00 16 cut ผ่า ผา0002่ 17 cloth ผ้า ผา0002้ 32 gold-plated ลงทอง ลงทอง00 33 settle down ลงท้อง ลงทอง0003้ 18 play เลน ลเน00 19 play เล็น ลเน0002็ 20 play เล่น ลเน0002่ 34 empty โล่งโต้ง ลโงตโง0006่02้ 35 empty โล้งโต้ง ลโงตโง0006้02้ 21 shimmer วาว วาว00 22 kite ว่าว วาว0003่ 23 wow ว้าว วาว0003้ 24 yuck โอ้ก อโก0002้ 25 yuck โอ๊ก อโก0002๊
I think that I must create a new list
Sub AppStart (Args() As String)
' https://x.com/i/grok/share/9oPOa9H4oWNt6arRshgetbXF7
Dim TestData() As String = Array As String( _
"English", "Thai", _
"Afghanistan", "อัฟกานิสถาน", _
"Albania", "แอลเบเนีย", _
"Algeria", "แอลจีเรีย", _
"Andorra", "อันดอร์รา", _
"Angola", "แองโกลา", _
"Antigua and Barbuda", "แอนทิกาและบาร์บูดา", _
"Argentina", "อาร์เจนตินา", _
"Armenia", "อาร์มีเนีย", _
"Australia", "ออสเตรเลีย", _
"Austria", "ออสเตรีย", _
"Azerbaijan", "อาเซอร์ไบจาน", _
"Bahamas", "บาฮามาส", _
"Bahrain", "บาห์เรน", _
"Bangladesh", "บังกลาเทศ", _
"Barbados", "บาร์เบโดส", _
"Belarus", "เบลารุส", _
"Belgium", "เบลเยียม", _
"Belize", "เบลีซ", _
"Benin", "เบนิน", _
"Bhutan", "ภูฏาน", _
"Bolivia", "โบลิเวีย", _
"Bosnia and Herzegovina", "บอสเนียและเฮอร์เซโกวีนา", _
"Botswana", "บอตสวานา", _
"Brazil", "บราซิล", _
"Brunei", "บรูไน", _
"Bulgaria", "บัลแกเรีย", _
"Burkina Faso", "บูร์กินาฟาโซ", _
"Burundi", "บุรุนดี", _
"Cabo Verde", "กาบูเวร์ดี", _
"Cambodia", "กัมพูชา", _
"Cameroon", "แคเมอรูน", _
"Canada", "แคนาดา", _
"Central African Republic", "สาธารณรัฐแอฟริกากลาง", _
"Chad", "ชาด", _
"Chile", "ชิลี", _
"China", "จีน", _
"Colombia", "โคลัมเบีย", _
"Comoros", "คอโมโรส", _
"Congo (Democratic Republic of the)", "สาธารณรัฐประชาธิปไตยคองโก", _
"Congo (Republic of the)", "สาธารณรัฐคองโก", _
"Costa Rica", "คอสตาริกา", _
"Côte d'Ivoire", "โกตดิวัวร์", _
"Croatia", "โครเอเชีย", _
"Cuba", "คิวบา", _
"Cyprus", "ไซปรัส", _
"Czech Republic", "สาธารณรัฐเช็ก", _
"Denmark", "เดนมาร์ก", _
"Djibouti", "จิบูตี", _
"Dominica", "โดมินีกา", _
"Dominican Republic", "สาธารณรัฐโดมินิกัน", _
"Ecuador", "เอกวาดอร์", _
"Egypt", "อียิปต์", _
"El Salvador", "เอลซัลวาดอร์", _
"Equatorial Guinea", "อิเควทอเรียลกินี", _
"Eritrea", "เอริเทรีย", _
"Estonia", "เอสโตเนีย", _
"Eswatini", "เอสวาตีนี", _
"Ethiopia", "เอธิโอเปีย", _
"Fiji", "ฟีจิ", _
"Finland", "ฟินแลนด์", _
"France", "ฝรั่งเศส", _
"Gabon", "กาบอง", _
"Gambia", "แกมเบีย", _
"Georgia", "จอร์เจีย", _
"Germany", "เยอรมนี", _
"Ghana", "กานา", _
"Greece", "กรีซ", _
"Grenada", "เกรเนดา", _
"Guatemala", "กัวเตมาลา", _
"Guinea", "กินี", _
"Guinea-Bissau", "กินี-บิสเซา", _
"Guyana", "กายอานา", _
"Haiti", "เฮติ", _
"Honduras", "ฮอนดูรัส", _
"Hungary", "ฮังการี", _
"Iceland", "ไอซ์แลนด์", _
"India", "อินเดีย", _
"Indonesia", "อินโดนีเซีย", _
"Iran", "อิหร่าน", _
"Iraq", "อิรัก", _
"Ireland", "ไอร์แลนด์", _
"Israel", "อิสราเอล", _
"Italy", "อิตาลี", _
"Jamaica", "จาเมกา", _
"Japan", "ญี่ปุ่น", _
"Jordan", "จอร์แดน", _
"Kazakhstan", "คาซัคสถาน", _
"Kenya", "เคนยา", _
"Kiribati", "คิริบาส", _
"Korea (North)", "เกาหลีเหนือ", _
"Korea (South)", "เกาหลีใต้", _
"Kosovo", "โคโซโว", _
"Kuwait", "คูเวต", _
"Kyrgyzstan", "คีร์กีซสถาน", _
"Laos", "ลาว", _
"Latvia", "ลัตเวีย", _
"Lebanon", "เลบานอน", _
"Lesotho", "เลโซโท", _
"Liberia", "ไลบีเรีย", _
"Libya", "ลิเบีย", _
"Liechtenstein", "ลิกเตนสไตน์", _
"Lithuania", "ลิทัวเนีย", _
"Luxembourg", "ลักเซมเบิร์ก", _
"Madagascar", "มาดากัสการ์", _
"Malawi", "มาลาวี", _
"Malaysia", "มาเลเซีย", _
"Maldives", "มัลดีฟส์", _
"Mali", "มาลี", _
"Malta", "มอลตา", _
"Marshall Islands", "หมู่เกาะมาร์แชลล์", _
"Mauritania", "มอริเตเนีย", _
"Mauritius", "มอริเชียส", _
"Mexico", "เม็กซิโก", _
"Micronesia", "ไมโครนีเชีย", _
"Moldova", "มอลโดวา", _
"Monaco", "โมนาโก", _
"Mongolia", "มองโกเลีย", _
"Montenegro", "มอนเตเนโกร", _
"Morocco", "โมร็อกโก", _
"Mozambique", "โมซัมบิก", _
"Myanmar", "พม่า", _
"Namibia", "นามิเบีย", _
"Nauru", "นาอูรู", _
"Nepal", "เนปาล", _
"Netherlands", "เนเธอร์แลนด์", _
"New Zealand", "นิวซีแลนด์", _
"Nicaragua", "นิการากัว", _
"Niger", "ไนเจอร์", _
"Nigeria", "ไนจีเรีย", _
"North Macedonia", "มาซิโดเนียเหนือ", _
"Norway", "นอร์เวย์", _
"Oman", "โอมาน", _
"Pakistan", "ปากีสถาน", _
"Palau", "ปาเลา", _
"Panama", "ปานามา", _
"Papua New Guinea", "ปาปัวนิวกินี", _
"Paraguay", "ปารากวัย", _
"Peru", "เปรู", _
"Philippines", "ฟิลิปปินส์", _
"Poland", "โปแลนด์", _
"Portugal", "โปรตุเกส", _
"Qatar", "กาตาร์", _
"Romania", "โรมาเนีย", _
"Russia", "รัสเซีย", _
"Rwanda", "รวันดา", _
"Saint Kitts and Nevis", "เซนต์คิตส์และเนวิส", _
"Saint Lucia", "เซนต์ลูเชีย", _
"Saint Vincent and the Grenadines", "เซนต์วินเซนต์และเกรนาดีนส์", _
"Samoa", "ซามัว", _
"San Marino", "ซานมารีโน", _
"São Tomé and Príncipe", "เซาตูเมและปรินซีปี", _
"Saudi Arabia", "ซาอุดีอาระเบีย", _
"Senegal", "เซเนกัล", _
"Serbia", "เซอร์เบีย", _
"Seychelles", "เซเชลส์", _
"Sierra Leone", "เซียร์ราลีโอน", _
"Singapore", "สิงคโปร์", _
"Slovakia", "สโลวาเกีย", _
"Slovenia", "สโลวีเนีย", _
"Solomon Islands", "หมู่เกาะโซโลมอน", _
"Somalia", "โซมาเลีย", _
"South Africa", "แอฟริกาใต้", _
"South Sudan", "ซูดานใต้", _
"Spain", "สเปน", _
"Sri Lanka", "ศรีลังกา", _
"Sudan", "ซูดาน", _
"Suriname", "ซูรินาม", _
"Sweden", "สวีเดน", _
"Switzerland", "สวิตเซอร์แลนด์", _
"Syria", "ซีเรีย", _
"Tajikistan", "ทาจิกิสถาน", _
"Tanzania", "แทนซาเนีย", _
"Thailand", "ไทย", _
"Timor-Leste", "ติมอร์-เลสเต", _
"Togo", "โตโก", _
"Tonga", "ตองงา", _
"Trinidad and Tobago", "ตรินิแดดและโตเบโก", _
"Tunisia", "ตูนิเซีย", _
"Turkey", "ตุรกี", _
"Turkmenistan", "เติร์กเมนิสถาน", _
"Tuvalu", "ตูวาลู", _
"Uganda", "ยูกันดา", _
"Ukraine", "ยูเครน", _
"United Arab Emirates", "สหรัฐอาหรับเอมิเรตส์", _
"United Kingdom", "สหราชอาณาจักร", _
"United States", "สหรัฐอเมริกา", _
"Uruguay", "อุรุกวัย", _
"Uzbekistan", "อุซเบกิสถาน", _
"Vanuatu", "วานูอาตู", _
"Vatican City", "นครวาติกัน", _
"Venezuela", "เวเนซุเอลา", _
"Vietnam", "เวียดนาม", _
"Yemen", "เยเมน", _
"Zambia", "แซมเบีย", _
"Zimbabwe", "ซิมบับเว" _
)
Dim MyList As List
MyList.Initialize
For I = 2 To TestData.Length - 1 Step 2
Dim FourStrings As FourStringsType
FourStrings.Original = NumberFormat(I / 2, 2, 0)
FourStrings.English = TestData(I)
FourStrings.Thai = TestData(I + 1)
FourStrings.ThaiSortCode = GetThaiComparisonString(FourStrings.Thai)
MyList.Add(FourStrings)
Next
MyList.SortType("ThaiSortCode", True)
Dim LineSeparator As String = CRLF
Dim sb As StringBuilder
sb.Initialize
sb.Append("INSERT INTO dt_Country (name, sortnumber, english) VALUES ")
For I = 0 To MyList.Size - 1
If I <> 0 Then sb.Append(", ")
sb.Append(LineSeparator)
Dim FS As FourStringsType = MyList.Get(I)
sb.Append("(")
sb.Append("'" & FS.Thai & "'")
sb.Append(", ")
sb.Append(I + 1)
sb.Append(", ")
sb.Append("'" & FS.English & "'")
sb.Append(")")
Next
sb.Append(";")
Log(sb.ToString)
End Sub
Waiting for debugger to connect...
Program started.
INSERT INTO dt_Country (name, sortnumber, english) VALUES
('กรีซ', 1, 'Greece'),
('กัมพูชา', 2, 'Cambodia'),
('กัวเตมาลา', 3, 'Guatemala'),
('กาตาร์', 4, 'Qatar'),
('กานา', 5, 'Ghana'),
('กาบอง', 6, 'Gabon'),
('กาบูเวร์ดี', 7, 'Cabo Verde'),
('กายอานา', 8, 'Guyana'),
('กินี-บิสเซา', 9, 'Guinea-Bissau'),
('กินี', 10, 'Guinea'),
('เกรเนดา', 11, 'Grenada'),
('เกาหลีใต้', 12, 'Korea (South)'),
('เกาหลีเหนือ', 13, 'Korea (North)'),
('แกมเบีย', 14, 'Gambia'),
('โกตดิวัวร์', 15, 'Côte d'Ivoire'),
('คอโมโรส', 16, 'Comoros'),
('คอสตาริกา', 17, 'Costa Rica'),
('คาซัคสถาน', 18, 'Kazakhstan'),
('คิริบาส', 19, 'Kiribati'),
('คิวบา', 20, 'Cuba'),
('คีร์กีซสถาน', 21, 'Kyrgyzstan'),
('คูเวต', 22, 'Kuwait'),
('เคนยา', 23, 'Kenya'),
('แคนาดา', 24, 'Canada'),
('แคเมอรูน', 25, 'Cameroon'),
('โคโซโว', 26, 'Kosovo'),
('โครเอเชีย', 27, 'Croatia'),
('โคลัมเบีย', 28, 'Colombia'),
('จอร์เจีย', 29, 'Georgia'),
('จอร์แดน', 30, 'Jordan'),
('จาเมกา', 31, 'Jamaica'),
('จิบูตี', 32, 'Djibouti'),
('จีน', 33, 'China'),
('ชาด', 34, 'Chad'),
('ชิลี', 35, 'Chile'),
('ซานมารีโน', 36, 'San Marino'),
('ซามัว', 37, 'Samoa'),
('ซาอุดีอาระเบีย', 38, 'Saudi Arabia'),
('ซิมบับเว', 39, 'Zimbabwe'),
('ซีเรีย', 40, 'Syria'),
('ซูดาน', 41, 'Sudan'),
('ซูดานใต้', 42, 'South Sudan'),
('ซูรินาม', 43, 'Suriname'),
('เซเชลส์', 44, 'Seychelles'),
('เซนต์คิตส์และเนวิส', 45, 'Saint Kitts and Nevis'),
('เซนต์ลูเชีย', 46, 'Saint Lucia'),
('เซนต์วินเซนต์และเกรนาดีนส์', 47, 'Saint Vincent and the Grenadines'),
('เซเนกัล', 48, 'Senegal'),
('เซอร์เบีย', 49, 'Serbia'),
('เซาตูเมและปรินซีปี', 50, 'São Tomé and Príncipe'),
('เซียร์ราลีโอน', 51, 'Sierra Leone'),
('แซมเบีย', 52, 'Zambia'),
('โซมาเลีย', 53, 'Somalia'),
('ไซปรัส', 54, 'Cyprus'),
('ญี่ปุ่น', 55, 'Japan'),
('เดนมาร์ก', 56, 'Denmark'),
('โดมินีกา', 57, 'Dominica'),
('ตรินิแดดและโตเบโก', 58, 'Trinidad and Tobago'),
('ตองงา', 59, 'Tonga'),
('ติมอร์-เลสเต', 60, 'Timor-Leste'),
('ตุรกี', 61, 'Turkey'),
('ตูนิเซีย', 62, 'Tunisia'),
('ตูวาลู', 63, 'Tuvalu'),
('เติร์กเมนิสถาน', 64, 'Turkmenistan'),
('โตโก', 65, 'Togo'),
('ทาจิกิสถาน', 66, 'Tajikistan'),
('แทนซาเนีย', 67, 'Tanzania'),
('ไทย', 68, 'Thailand'),
('นครวาติกัน', 69, 'Vatican City'),
('นอร์เวย์', 70, 'Norway'),
('นามิเบีย', 71, 'Namibia'),
('นาอูรู', 72, 'Nauru'),
('นิการากัว', 73, 'Nicaragua'),
('นิวซีแลนด์', 74, 'New Zealand'),
('เนเธอร์แลนด์', 75, 'Netherlands'),
('เนปาล', 76, 'Nepal'),
('ไนจีเรีย', 77, 'Nigeria'),
('ไนเจอร์', 78, 'Niger'),
('บราซิล', 79, 'Brazil'),
('บรูไน', 80, 'Brunei'),
('บอตสวานา', 81, 'Botswana'),
('บอสเนียและเฮอร์เซโกวีนา', 82, 'Bosnia and Herzegovina'),
('บังกลาเทศ', 83, 'Bangladesh'),
('บัลแกเรีย', 84, 'Bulgaria'),
('บาร์เบโดส', 85, 'Barbados'),
('บาห์เรน', 86, 'Bahrain'),
('บาฮามาส', 87, 'Bahamas'),
('บุรุนดี', 88, 'Burundi'),
('บูร์กินาฟาโซ', 89, 'Burkina Faso'),
('เบนิน', 90, 'Benin'),
('เบลเยียม', 91, 'Belgium'),
('เบลารุส', 92, 'Belarus'),
('เบลีซ', 93, 'Belize'),
('โบลิเวีย', 94, 'Bolivia'),
('ปากีสถาน', 95, 'Pakistan'),
('ปานามา', 96, 'Panama'),
('ปาปัวนิวกินี', 97, 'Papua New Guinea'),
('ปารากวัย', 98, 'Paraguay'),
('ปาเลา', 99, 'Palau'),
('เปรู', 100, 'Peru'),
('โปรตุเกส', 101, 'Portugal'),
('โปแลนด์', 102, 'Poland'),
('ฝรั่งเศส', 103, 'France'),
('พม่า', 104, 'Myanmar'),
('ฟินแลนด์', 105, 'Finland'),
('ฟิลิปปินส์', 106, 'Philippines'),
('ฟีจิ', 107, 'Fiji'),
('ภูฏาน', 108, 'Bhutan'),
('มองโกเลีย', 109, 'Mongolia'),
('มอนเตเนโกร', 110, 'Montenegro'),
('มอริเชียส', 111, 'Mauritius'),
('มอริเตเนีย', 112, 'Mauritania'),
('มอลโดวา', 113, 'Moldova'),
('มอลตา', 114, 'Malta'),
('มัลดีฟส์', 115, 'Maldives'),
('มาซิโดเนียเหนือ', 116, 'North Macedonia'),
('มาดากัสการ์', 117, 'Madagascar'),
('มาลาวี', 118, 'Malawi'),
('มาลี', 119, 'Mali'),
('มาเลเซีย', 120, 'Malaysia'),
('เม็กซิโก', 121, 'Mexico'),
('โมซัมบิก', 122, 'Mozambique'),
('โมนาโก', 123, 'Monaco'),
('โมร็อกโก', 124, 'Morocco'),
('ไมโครนีเชีย', 125, 'Micronesia'),
('ยูกันดา', 126, 'Uganda'),
('ยูเครน', 127, 'Ukraine'),
('เยเมน', 128, 'Yemen'),
('เยอรมนี', 129, 'Germany'),
('รวันดา', 130, 'Rwanda'),
('รัสเซีย', 131, 'Russia'),
('โรมาเนีย', 132, 'Romania'),
('ลักเซมเบิร์ก', 133, 'Luxembourg'),
('ลัตเวีย', 134, 'Latvia'),
('ลาว', 135, 'Laos'),
('ลิกเตนสไตน์', 136, 'Liechtenstein'),
('ลิทัวเนีย', 137, 'Lithuania'),
('ลิเบีย', 138, 'Libya'),
('เลโซโท', 139, 'Lesotho'),
('เลบานอน', 140, 'Lebanon'),
('ไลบีเรีย', 141, 'Liberia'),
('วานูอาตู', 142, 'Vanuatu'),
('เวเนซุเอลา', 143, 'Venezuela'),
('เวียดนาม', 144, 'Vietnam'),
('ศรีลังกา', 145, 'Sri Lanka'),
('สเปน', 146, 'Spain'),
('สโลวาเกีย', 147, 'Slovakia'),
('สโลวีเนีย', 148, 'Slovenia'),
('สวิตเซอร์แลนด์', 149, 'Switzerland'),
('สวีเดน', 150, 'Sweden'),
('สหรัฐอเมริกา', 151, 'United States'),
('สหรัฐอาหรับเอมิเรตส์', 152, 'United Arab Emirates'),
('สหราชอาณาจักร', 153, 'United Kingdom'),
('สาธารณรัฐคองโก', 154, 'Congo (Republic of the)'),
('สาธารณรัฐเช็ก', 155, 'Czech Republic'),
('สาธารณรัฐโดมินิกัน', 156, 'Dominican Republic'),
('สาธารณรัฐประชาธิปไตยคองโก', 157, 'Congo (Democratic Republic of the)'),
('สาธารณรัฐแอฟริกากลาง', 158, 'Central African Republic'),
('สิงคโปร์', 159, 'Singapore'),
('หมู่เกาะโซโลมอน', 160, 'Solomon Islands'),
('หมู่เกาะมาร์แชลล์', 161, 'Marshall Islands'),
('ออสเตรเลีย', 162, 'Australia'),
('ออสเตรีย', 163, 'Austria'),
('อันดอร์รา', 164, 'Andorra'),
('อัฟกานิสถาน', 165, 'Afghanistan'),
('อาเซอร์ไบจาน', 166, 'Azerbaijan'),
('อาร์เจนตินา', 167, 'Argentina'),
('อาร์มีเนีย', 168, 'Armenia'),
('อิเควทอเรียลกินี', 169, 'Equatorial Guinea'),
('อิตาลี', 170, 'Italy'),
('อินเดีย', 171, 'India'),
('อินโดนีเซีย', 172, 'Indonesia'),
('อิรัก', 173, 'Iraq'),
('อิสราเอล', 174, 'Israel'),
('อิหร่าน', 175, 'Iran'),
('อียิปต์', 176, 'Egypt'),
('อุซเบกิสถาน', 177, 'Uzbekistan'),
('อุรุกวัย', 178, 'Uruguay'),
('เอกวาดอร์', 179, 'Ecuador'),
('เอธิโอเปีย', 180, 'Ethiopia'),
('เอริเทรีย', 181, 'Eritrea'),
('เอลซัลวาดอร์', 182, 'El Salvador'),
('เอสโตเนีย', 183, 'Estonia'),
('เอสวาตีนี', 184, 'Eswatini'),
('แองโกลา', 185, 'Angola'),
('แอนทิกาและบาร์บูดา', 186, 'Antigua and Barbuda'),
('แอฟริกาใต้', 187, 'South Africa'),
('แอลจีเรีย', 188, 'Algeria'),
('แอลเบเนีย', 189, 'Albania'),
('โอมาน', 190, 'Oman'),
('ไอซ์แลนด์', 191, 'Iceland'),
('ไอร์แลนด์', 192, 'Ireland'),
('ฮอนดูรัส', 193, 'Honduras'),
('ฮังการี', 194, 'Hungary'),
('เฮติ', 195, 'Haiti');
emexes showed me type FourStringType how to solved the problem.
Hi , try thisRefer to Alexeder's code as belows
B4X:'SQL query based on the search text Dim DR As ResultSet = sql1.ExecQuery2("SELECT * FROM dt_Country WHERE name LIKE ? ORDER BY name ASC",Array As String("%" & SearchText & "%"))
"ORDER BY name ASC" it can used only English, If I need to test my language(Thai) ,How to code?
Dim DR As ResultSet = sql1.ExecQuery2("SELECT * FROM dt_Country WHERE name LIKE ? ORDER BY name COLLATE utf8_bin ASC",Array As String("%" & SearchText & "%"))
Thank you so much,d3vcHi , try this
add COLLATE utf8_bin to the order by part
SQL:Dim DR As ResultSet = sql1.ExecQuery2("SELECT * FROM dt_Country WHERE name LIKE ? ORDER BY name COLLATE utf8_bin ASC",Array As String("%" & SearchText & "%"))
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?