<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://www.dotnetzone.gr:443/cs/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>WinForms</title><link>https://www.dotnetzone.gr:443/cs/forums/12/ShowForum.aspx</link><description>Θέματα για rich client / windows εφαρμογές, σε οποιαδήποτε γλώσσα (VB.NET, C#, managed C++, κ.α.)</description><dc:language>el</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Απ: Datatable.Select() και Ελληνικά</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/6237.aspx</link><pubDate>Tue, 18 Oct 2005 21:45:43 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:6237</guid><dc:creator>Χρήστος Γεωργακόπουλος</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/6237.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=6237</wfw:commentRss><description>&lt;P&gt;&lt;BLOCKQUOTE&gt;&lt;table width="85%"&gt;&lt;tr&gt;&lt;td class="txt4"&gt;&lt;img src="/cs/Themes/default/images/icon-quote.gif"&gt;&amp;nbsp;&lt;strong&gt;cgeo wrote:&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="quoteTable"&gt;&lt;table width="100%"&gt;&lt;tr&gt;&lt;td width="100%" valign="top" class="txt4"&gt;Collation = Greek, case insensitive + accent insensitive = CI - AI &lt;BR&gt;Βρέπει να είναι σίγουρα τα πεδία με αυτό το collation, νομίζω και η βάση το ίδιο.&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/BLOCKQUOTE&gt;&lt;/P&gt;
&lt;P&gt;Ουπς, λάθος... νόμιζα ότι ήταν στη βάση....&lt;/P&gt;</description></item><item><title>Απ: Datatable.Select() και Ελληνικά</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/6235.aspx</link><pubDate>Tue, 18 Oct 2005 20:05:54 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:6235</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/6235.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=6235</wfw:commentRss><description>&lt;P&gt;Το βρήκα! Ας είναι καλά ο &lt;A href="http://blogs.msdn.com/michkap"&gt;Michael Kaplan &lt;/A&gt;, που στο άρθρο του "&lt;A href="http://blogs.msdn.com/michkap/archive/2005/06/09/427293.aspx"&gt;String.Compare is for Sissies&lt;/A&gt;"&amp;nbsp; έχει την αντιστοιχία μεταξύ των comparison constants των Windows 2000 και του SQL Server. Ανακαλύπτουμε λοιπόν, ότι το flag που αγνοεί τους τόνους είναι το ... CompareOptions.IgnoreNonSpace ?&lt;/P&gt;
&lt;P&gt;Tέλος πάντων, περνώντας αυτό επιτέλους η CompareInfo.Compare επιστρέφει 0!&lt;/P&gt;
&lt;P&gt;CultureInfo.CurrentCulture.CompareInfo.Compare(strTest, strTest2,CompareOptions.IgnoreNonSpace)==0&lt;/P&gt;
&lt;P&gt;Έτσι θα δουλέψει η αναζήτηση σε loop αλλά το DataTable.Select δεν δουλεύει. Ο λόγος είναι ότι δεν μπορεί να ορίσει κανείς CompareOptions για το select ή το DataTable, ούτε για το CultureInfo που χρησιμοποιεί το thread, ούτε για το Locale property του DataSet!&lt;/P&gt;
&lt;P&gt;Σημείωση: Ούτε με το String.Compare δουλεύει!&lt;BR&gt;&lt;/P&gt;</description></item><item><title>Απ: Datatable.Select() και Ελληνικά</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/6232.aspx</link><pubDate>Tue, 18 Oct 2005 19:11:48 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:6232</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/6232.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=6232</wfw:commentRss><description>Γιατί αυτό είναι χακιά! Αυτό θα αναγκαστώ να το κάνω επειδή δεν μπορώ να ορίσω κάποιο CompareOptions το οποίο θα αγνοεί τους τόνους</description></item><item><title>Απ: Datatable.Select() και Ελληνικά</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/6231.aspx</link><pubDate>Tue, 18 Oct 2005 19:06:22 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:6231</guid><dc:creator>cap</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/6231.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=6231</wfw:commentRss><description>&lt;P&gt;&lt;BLOCKQUOTE&gt;&lt;table width="85%"&gt;&lt;tr&gt;&lt;td class="txt4"&gt;&lt;img src="/cs/Themes/default/images/icon-quote.gif"&gt;&amp;nbsp;&lt;strong&gt;pkanavos wrote:&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="quoteTable"&gt;&lt;table width="100%"&gt;&lt;tr&gt;&lt;td width="100%" valign="top" class="txt4"&gt;Τώρα πως, θα κάνεις accent-insensitive σύγκριση σε string, αυτό είναι άλλο πρόβλημα. Ακόμα δεν έχω βρει κάποιο να πείσω το String.Compare('γιώργος','γιωργος') να επιστρέψει 0 (ότι δηλαδή οι τιμές είναι ίδιες).&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/BLOCKQUOTE&gt;&lt;/P&gt;
&lt;P&gt;Και γιατί δεν φτιάχνεις κάτι σαν:&lt;/P&gt;
&lt;P&gt;&lt;span style="color: Black;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;Private&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;Function&lt;/span&gt; ToLowerRemoveAccent(&lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;ByVal&lt;/span&gt; s &lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;As&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;String&lt;/span&gt;) &lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;As&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;String&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;Dim&lt;/span&gt; sb &lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;As&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;New&lt;/span&gt; System.Text.StringBuilder(s.ToLower)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        sb.&lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;Replace&lt;/span&gt;(&lt;span style="color: #666666;background-color: #e4e4e4;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;"ά"&lt;/span&gt;, &lt;span style="color: #666666;background-color: #e4e4e4;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;"α"&lt;/span&gt;)&lt;br /&gt;        sb.&lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;Replace&lt;/span&gt;(&lt;span style="color: #666666;background-color: #e4e4e4;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;"ώ"&lt;/span&gt;, &lt;span style="color: #666666;background-color: #e4e4e4;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;"ω"&lt;/span&gt;)&lt;br /&gt;        sb.&lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;Replace&lt;/span&gt;(&lt;span style="color: #666666;background-color: #e4e4e4;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;"έ"&lt;/span&gt;, &lt;span style="color: #666666;background-color: #e4e4e4;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;"ε"&lt;/span&gt;)&lt;br /&gt;        sb.&lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;Replace&lt;/span&gt;(&lt;span style="color: #666666;background-color: #e4e4e4;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;"ί"&lt;/span&gt;, &lt;span style="color: #666666;background-color: #e4e4e4;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;"ι"&lt;/span&gt;)&lt;br /&gt;        sb.&lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;Replace&lt;/span&gt;(&lt;span style="color: #666666;background-color: #e4e4e4;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;"ύ"&lt;/span&gt;, &lt;span style="color: #666666;background-color: #e4e4e4;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;"υ"&lt;/span&gt;)&lt;br /&gt;        sb.&lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;Replace&lt;/span&gt;(&lt;span style="color: #666666;background-color: #e4e4e4;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;"ό"&lt;/span&gt;, &lt;span style="color: #666666;background-color: #e4e4e4;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;"ο"&lt;/span&gt;)&lt;br /&gt;        sb.&lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;Replace&lt;/span&gt;(&lt;span style="color: #666666;background-color: #e4e4e4;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;"ϊ"&lt;/span&gt;, &lt;span style="color: #666666;background-color: #e4e4e4;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;"ι"&lt;/span&gt;)&lt;br /&gt;        sb.&lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;Replace&lt;/span&gt;(&lt;span style="color: #666666;background-color: #e4e4e4;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;"ϋ"&lt;/span&gt;, &lt;span style="color: #666666;background-color: #e4e4e4;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;"υ"&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;Return&lt;/span&gt; (sb.ToString)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;End&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;Function&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;Οπότε να κάνεις String.Compare(ToLowerRemoveAccent(string1), ToLowerRemoveAccent(string2)) ?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description></item><item><title>Απ: Datatable.Select() και Ελληνικά</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/6230.aspx</link><pubDate>Tue, 18 Oct 2005 17:48:58 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:6230</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/6230.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=6230</wfw:commentRss><description>Αν η κλήση γινόταν σαν SQL στη database θα δούλευε το collation και θα μπορούσες να γράψεις:&lt;br&gt;   SELECT * FROM mytable WHERE name=('γιωργος' COLLATE Greek_CI_AI ) &lt;br&gt;   για να αγνοήσει κεφαλαία ή&lt;br&gt;   SELECT * FROM mytable WHERE name=('γιωργος' COLLATE Greek_CS_AI ) &lt;br&gt;   για να αγνοήσει μόνο τόνους&lt;br&gt;&lt;br&gt;Εδώ όμως έχουμε DataTable όχι Database. Το DataTable είναι ένα αντικείμενο στη μνήμη το οποίο δεν διατηρεί καμμία σύνδεση με κάποια database, ούτε είναι το ίδιο βάση. Το Select του DataTable δυστυχώς δεν υποστηρίζει accent-insensitive αναζητήσεις, οπότε θα πρέπει να αρκεστείς στο like 'γι*ργος'.&lt;br&gt;&lt;br&gt;Μπορείς όμως να κάνεις ένα loop σε όλες τις γραμμές για να βρεις αυτές που θέλεις. Στην περίπτωση που δεν υπάρχει κάποιο index στο name, η ταχύτητα θα είναι η ίδια. &lt;br&gt;Τώρα πως, θα κάνεις accent-insensitive σύγκριση σε string, αυτό είναι άλλο πρόβλημα. Ακόμα δεν έχω βρει κάποιο να πείσω το String.Compare('γιώργος','γιωργος') να επιστρέψει 0 (ότι δηλαδή οι τιμές είναι ίδιες).</description></item><item><title>Απ: Datatable.Select() και Ελληνικά</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/6225.aspx</link><pubDate>Tue, 18 Oct 2005 07:53:28 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:6225</guid><dc:creator>Χρήστος Γεωργακόπουλος</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/6225.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=6225</wfw:commentRss><description>Collation = Greek, case insensitive + accent insensitive = CI - AI&lt;br&gt;Βρέπει να είναι σίγουρα τα πεδία με αυτό το collation, νομίζω και η βάση το ίδιο.</description></item><item><title>Datatable.Select() και Ελληνικά</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/6224.aspx</link><pubDate>Tue, 18 Oct 2005 07:45:22 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:6224</guid><dc:creator>geochatz</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/6224.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=6224</wfw:commentRss><description>Θα ήθελα τα φώτα σας στο παρακάτω πρόβλημα μου.&lt;br&gt;
&lt;br&gt;
Έχω ένα Datatable το οποίο το έχω γεμίσει με εγγραφές απο ένα SQL
Server. Ας υποθέσουμε ότι έχει μέσα τις παρακάτω εγγραφές (rows)&lt;br&gt;
&lt;br&gt;
&lt;i&gt;Γιώργος&lt;br&gt;
Γιάννης&lt;br&gt;
Κώστας&lt;br&gt;
&lt;br&gt;
&lt;/i&gt;Στην συνέχεια κάνω&lt;br&gt;
&lt;br&gt;
&lt;span style="color: Black;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;DataRow[] drs ; &lt;br /&gt;&lt;br /&gt;drs &lt;span style="color: Red;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;=&lt;/span&gt; dt.Select(&lt;span style="color: #666666;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;" name like 'γιωργος' "&lt;/span&gt;);&lt;/span&gt;&lt;br&gt;
&lt;br&gt;
Αυτό λογικά θα μου φέρει ένα Array με τις εγγραφές που ικανοποιούν το
παραπάνω κριτήριο. Το θέμα μου τώρα είναι αν μπορώ με κάποιο τρόπο να
πω στο Framework να φέρει τις εγγραφές είτε είναι στα κεφαλαία
γραμμένες, είτε έχουν τόνους, είτε είναι σε πολυτονικό σύστημα. Και για
γίνω περισσότερο κατανοητός εννοώ δίνοντας&lt;br&gt;
&lt;br&gt;
&lt;span style="color: Black;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;drs &lt;span style="color: Red;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;=&lt;/span&gt; dt.Select(&lt;span style="color: #666666;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;" name like 'γιωργος' "&lt;/span&gt;);&lt;/span&gt;&lt;br&gt;
&lt;br&gt;
να μου φέρνει την εγγραφή &lt;b&gt;"Γιώργος"&lt;/b&gt;.&lt;br&gt;</description></item></channel></rss>