दिलचस्प पोस्ट
वर्णों की एक निश्चित संख्या के सबसे निकटतम शब्द के लिए PHP में एक स्ट्रिंग को कैसे छोटा करना है? क्यों नहीं enum के निर्माता स्थिर क्षेत्रों का उपयोग कर सकते हैं? मैं SQL सर्वर में एक VARCHAR स्तंभ को कैसे सॉर्ट कर सकता हूँ जिसमें संख्याएं हैं? MySQL "NOT IN" क्वेरी 3 तालिकाएं क्या span /> का प्रयोग बंद हो सकता है? क्या किसी भी मामले में नई वापसी होगी? अनुमति के अलावा सभी HTML टैग पट्टी करें दशमलव, फ्लोट और डबल में अंतर। नेट? Android अंतहीन सूची डेटाबेस 'मास्टर' (ईएफ कोड-पहले) में डेटाबैस अनुमति अस्वीकृत बनाएँ MySQL में सीमा का उपयोग करके कई पंक्तियों को अपडेट करें? क्यों पो (n, 2) 24 को वापस करता है जब n = 5, मेरे कंपाइलर और ओएस के साथ? स्वयं दस्तावेज़ कोड क्या है और क्या यह अच्छी तरह से प्रलेखित कोड को प्रतिस्थापित कर सकता है? इकाई ढांचा 6 के लिए एक MySQL कनेक्शन का उपयोग नहीं किया जा सकता NSString की भाषा का पता लगाएं

डेल्फी रूपांतरण यूनिकोड मुद्दे

हमारे पास एक बड़े वाणिज्यिक ऐप है जिसे हम डेल्फी 6 से 2010 में बदलना चाहते हैं। लगभग 10 तृतीय पक्ष घटक सेट, सभी स्रोत कोड के साथ … मैंने 2010 के साथ यूनिकोड के बारे में चेतावनी सुनाई है – क्या किसी को अनुभव और या सुझाव हैं?

वेब के समाधान से एकत्रित समाधान "डेल्फी रूपांतरण यूनिकोड मुद्दे"

कई संसाधन उपलब्ध हैं जो आप पढ़ सकते हैं और आप डेल्फी 6 से डेल्फी 2009/2010 (यूनिकोड) से माइग्रेशन में सहायता करेंगे।

आप एक गाइड के रूप में इन लेखों का उपयोग कर सकते हैं

  • यूनिकोड माइग्रेशन आंकड़े उपकरण (यह उपयोगिता उम्मीद है कि आप अपने पुराने अनुप्रयोगों को यूनिकोड में माइग्रेट करने के लिए कितना मुश्किल (या नहीं) पर उपयोगी आंकड़े इकट्ठा करने में सहायता करेंगे।)
  • डेल्फी 2009 और यूनिकोड
  • डेल्फी 2009 स्ट्रिंग उदाहरण द्वारा समझाया गया
  • डेल्फी 200 9 में एक प्रमुख परियोजना का उन्नयन
  • डेल्फी और यूनिकोड
  • डॉ बॉब डेल्फी 2009 यूनिकोड
  • डेल्फी 2009 – टाइप पुस्तकालयों में यूनिकोड
  • स्ट्रिंग्स और यूनिकोड में डेल्फी 200 9 में
  • यूनिकोड विश्व में डेल्फी भाग I: यूनिकोड क्या है, आपको इसकी आवश्यकता क्यों है, और आप डेल्फी में इसके साथ कैसे काम करते हैं?
  • यूनिकोड विश्व भाग II में डेल्फी: नई आरटीएल सुविधाओं और यूनिकोड के समर्थन के लिए कक्षाएं
  • एक यूनिकोड विश्व भाग III में डेल्फी: आपका कोड यूनिकोडिडिंग
  • CodeRage 4: अपने प्रोग्राम में यूनिकोड और अन्य एन्कोडिंग का उपयोग करना

अलविदा।

इन स्टैक ओवरफ्लो सवालों में आपको कुछ उपयोगी उत्तर मिलेगा:

डेल्फी 3 से डेल्फी 2010 तक प्रोजेक्ट को ले जाएं

कब और क्यों मैं TStringBuilder का उपयोग करना चाहिए?

डेल्फी 2009/2010 (यूनिकोड) के लिए फ़ंक्शन कन्वर्ट करें

डेल्फी 2009/2010 और विंडोज़ एपीआई कॉल के साथ यूनिकोड समस्याओं

साथ ही, इसके लिए क्या है, मैंने मार्को कैंटू की डेल्फी 200 9 पुस्तिका पुस्तिका खरीदी है। केवल कुछ ही हफ्तों में डेल्फी 4 से डेल्फी 200 9 में अपेक्षाकृत चिकनी रूपांतरण बनाने की आवश्यकता थी।

वैकल्पिक पाठ http://img.hiwab.com/delphi/D2009Handbook_small.jpg

मैं करता हूं, हालांकि, सुझाव देता हूं कि आप सुनिश्चित करें कि आप अपने तृतीय पक्ष के पैकेज में डेल्फी 2009 के उन्नयन, या आपके पास कुछ वास्तविक समस्याएं हो सकती हैं अपने कोड को परिवर्तित करना एक बात है किसी और को परिवर्तित करना दूसरा है

मैं दो तृतीय पक्ष संकुल का उपयोग करता हूं, दोनों स्रोत कोड के साथ। दोनों के उन्नयन उपलब्ध थे, और उनमें से एक के डेवलपर ने लिखा कि उनके बहुत ही जटिल घटक को यूनीकोड ​​ऑफ़ डेल्फी 200 9 में अपनाने में बहुत परेशानी थी। यह कुछ महीनों में उसे ले गया, लेकिन उसने इसे पूरा कर लिया। और इसके परिणामस्वरूप, मेरे अपने घटक के कार्यान्वयन में मुझे बहुत परेशानी थी, जब मैंने अपना उन्नयन किया था

मैं हाल ही में एक ही परिस्थिति में रहा हूँ आपको ज्यादातर ऐप के "किनारों" पर ध्यान देना होगा। आईएनआई फाइलें, I / O फ़ाइल करें, लॉग फाइलें, आदि डेलिफ़ी काम से एपीआई कॉल करते हैं, क्योंकि वे अब यूनिकोड एपीआई कॉल से जुड़े हैं। डेल्फी 2009 के लिए कम से कम तैयार हैं यह सुनिश्चित करने के लिए प्रत्येक तृतीय पक्ष घटक सेट की जांच करें … अभी तक 2010. यहां तक ​​कि मेरे डेटाबेस का उपयोग केवल एक मुद्दा नहीं था … लगभग सब कुछ ठीक काम किया। यह सिर्फ एक बड़ा सौदा नहीं था जो कुछ भी एक चरित्र के आकार पर निर्भर करता है उसकी समीक्षा की जानी चाहिए।

वास्तव में सबसे अधिक चिंता का संक्रमण 2007_or_earlier -> 2009_or_later है

इसके बारे में बहुत सारे चर्चा / ब्लॉग प्रविष्टियाँ हैं आप पढ़ सकते हैं, पढ़ सकते हैं, पढ़ें … या आप आरंभ कर सकते हैं और देखें कि क्या होता है (मैंने दोनों में से कुछ किया)। मुझे यकीन है कि आपके सवाल पर चर्चा करने वाले "स्टैक अतिप्रवाह" समस्याएं हैं I मैं क्या हो सकता है की एक विस्तृत विवरण देने का नाटक नहीं कर रहा हूँ।

यह बस के रूप में यह लगता है के रूप में डरावना नहीं है

लगभग 10 तृतीय पक्ष घटक सेट, सभी स्रोत कोड के साथ।

एक बात जो मैं जोड़ूंगा, यदि घटक डेल्फी 2009/2010 का समर्थन नहीं करता है, तो कोड को हैकिंग करके इसे अपग्रेड करने का प्रयास न करें।

डेल्फी 2009/2010 में नए स्ट्रिंग प्रकार कैसे काम करते हैं I :

डेल्फी और यूनिकोड देखें, मार्को केंटू द्वारा लिखा गया एक श्वेत पत्र और मुझे लगता है कि पूर्ण न्यूनतम सॉफ्टवेयर डेवलपर बिल्कुल, सकारात्मक रूप से यूनिकोड और वर्ण सेट (नो बहस!) , जोएल द्वारा लिखित के बारे में पता होना चाहिए ।

एक खाई यह है कि डिफ़ॉल्ट Win32 एपीआई कॉल को ए (एएनएसआई) संस्करण की बजाय डब्ल्यू (वाइड स्ट्रिंग) संस्करण का उपयोग करने के लिए मैप किया गया है, उदाहरण के लिए ShellExecuteA यदि आपका कोड AnsiString आंतरिक लेआउट को मानते हुए मुश्किल पॉइंटर कोड कर रहा है, तो वह टूट जाएगा । कोड के उस भाग के लिए Win32 एपीआई कॉल के अंत में एक फॉलबैक, PChar साथ PAnsiChar , PChar साथ PAnsiChar , PChar साथ string , और ए को जोड़ने के लिए है। कोड वास्तव में संकलित और सामान्य रूप से चलने के बाद, आप string ( UnicodeString ) का उपयोग करने के लिए अपने कोड को UnicodeString

मुझे इस लेख को कैरी जेन्सेन से दूसरे लोगों के लिए जोड़ना चाहिए। इसे लेबल किया गया है: "डेल्फी यूनिकोड माइग्रेशन फॉर मेर मोर्टल्स: स्टोरीज एंड ऐडवाइस फ्रॉम द फ्रंट लाइन्स" (अंग्रेजी में)। http://www.danysoft.com/free/delphiunicodemigration.pdf

जैसा कि आप इसे शीर्षक के रूप में देख सकते हैं, आपको कई अनुभव और संकेत मिलेगा और युक्तियां मुझे लगता है कि यह आपके प्रश्न का उत्तर है इसे ध्यान से पढ़ें के बाद, आप निश्चित रूप से जानते हैं कि आगे क्या करना है 🙂

में पाया: http://www.danysoft.com/productos/migrar-aplicaciones-a-delphi-xe-o-cbuilder-xe.html

देखभाल करने के लिए एक अन्य बिंदु, स्ट्रिंग के साथ भिन्न प्रकारों का उपयोग और स्ट्रिंग्स के लिए VarType फ़ंक्शन परीक्षण है: एक को varString के बजाय varUString का उपयोग करने की आवश्यकता है।

मान लें कि AValue प्रकार प्रकार का है और इसे यूनिकोड स्ट्रिंग मान असाइन किया गया है, निम्नलिखित कार्य नहीं करेगा:

  if VarType(AValue) = varString then ... 

और इसमें बदलाव की जरूरत है

  if VarType(AValue) = varUString then ...