पर केस असंवेदनशील तरीके से टेक्स्ट की तुलना कैसे करें I AnsiSameText का उपयोग कर एक असंवेदनशील तरीके से ओएसएक्स पर दो तारों की तुलना करने की कोशिश कर रहा हूं। यह ठीक काम करने के लिए प्रयोग किया जाता था, लेकिन ओएसएक्स योसेमेट पर यह अजीब व्यवहार करता है अगर ओएसएक्स की "पसंदीदा भाषा" डच ("सिस्टम प्राथमिकताएं" -> "भाषा & क्षेत्र" -> "पसंदीदा भाषाएं" -> "नेडरलैंड्स डच ")।ओएसएक्स योसेमेट
निम्नलिखित कोड नमूने में मुझे उम्मीद है कि यह केवल "समान" प्रिंट करेगा। लेकिन मुझे "एक ही, अलग, अलग" मिलता है। एक मामले असंवेदनशील तरीके से ग्रंथों की तुलना करने का सही तरीका
program Project2;
{$APPTYPE CONSOLE}
{$R *.res}
uses
System.SysUtils;
begin
if AnsiSameText('abcde', 'ABCDE') then // Same
WriteLn('Same')
else
WriteLn('Different');
if AnsiSameText('abcdefghijklmnopqrstuvwxyz', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ') then // different
WriteLn('Same')
else
WriteLn('Different');
if AnsiSameText('i', 'I') then // different
WriteLn('Same')
else
WriteLn('Different');
end.
क्या है?
मैं डेल्फी एक्सई 7 का उपयोग कर रहा हूं।
यह व्यवहार स्पष्ट रूप से गलत है। क्या आपको डेल्फी के विभिन्न संस्करणों पर एक ही आउटपुट मिलता है? ओएसएक्स के विभिन्न संस्करण? जब आप 'AnsiSameText' डीबग करते हैं तो क्या होता है। आपके पास इसके लिए स्रोत कोड है। –
AnsiSameText 'CFStringCompareWithOptionsAndLocale' रिटर्न -1 में डिबगिंग करते समय। ओएसएक्स 10.9 पर AnsiSameText अपेक्षा के अनुसार काम करता है। मैंने XE5 और XE7 की कोशिश की, यह दोनों संस्करणों में विफल रहता है। जैसे ही मैं ओएसएक्स 10.10 की भाषा को अंग्रेजी में बदलता हूं, AnsiSameText अपेक्षा के अनुसार काम करता है। लेकिन मैं अपने डच उपयोगकर्ताओं को उनके ओएस की भाषा स्विच करने के लिए नहीं कह सकता। –
अगला चरण एक ओबीजे-सी प्रोग्राम लिखना है जो इन तारों को 'CFStringCompareWithOptionsAndLocale' पर पास करता है और समस्या को ठीक कहां से सीमित करने का प्रयास करता है। यह थोड़ा सा लगता है जैसे ओएसएक्स संस्करण परिवर्तन यहां कुंजी है। लेकिन यह हो सकता है कि 'CFStringCompareWithOptionsAndLocale' के आसपास डेल्फी रैपर हमेशा टूटा गया है और नया संस्करण दोष को हाइलाइट करने के लिए होता है। एम्बा को इस मुद्दे को देखने का मौका देने के लिए आप डेल्फी गुणवत्ता पोर्टल पर अपना उदाहरण प्रोग्राम भी सबमिट कर सकते हैं। बीटीडब्ल्यू, एक शानदार एमसीवीई के लिए +1। –