अनुशंसित वर्ण ए टू जेड, ए से ज़ेड, 0 से 9 तक हैं। कम से कम कोड या एकल फ़ंक्शन सबसे अच्छा होगा क्योंकि सिस्टम इनपुट के जवाब में समय महत्वपूर्ण है।डेल्फी 7 में स्ट्रिंग से गैर अल्फान्यूमेरिक वर्णों को अलग करने का सबसे तेज़ तरीका क्या है?
उत्तर
uses JclStrings;
S := StrKeepChars('mystring', ['A'..'Z', 'a'..'z', '0'..'9']);
नोट: नवीनतम जेसीएल लाइब्रेरी में, आप कहेंगे:' JclAnsiStrings का उपयोग करता है ' –
OnKeypress घटना
शुरू नहीं तो (में महत्वपूर्ण [ 'ए' .. 'Z', 'एक' .. 'z', '0' .. '9']) तो कुंजी: = # 0; अंत;
आपको वैसे भी उपयोग करने से पहले टेक्स्ट को सत्यापित करना होगा। आप क्लिपबोर्ड या टेक्स्ट ड्रैग और ड्रॉप का उपयोग करके इस चेक को बाईपास कर सकते हैं। – DiGi
ओपी एक स्ट्रिंग को पट्टी करना चाहता है - कीबोर्ड का कोई उल्लेख नहीं। –
बस एक टिप्पणी जोड़ने के लिए।
डेल्फी 7 में एक सेट का उपयोग करने का समाधान ठीक है, लेकिन यह डेल्फी 200 में कुछ समस्याएं पैदा कर सकता है क्योंकि सेट चार का नहीं हो सकता है (वे Ansichar में परिवर्तित हो जाते हैं)।
एक समाधान का उपयोग कर सकते है:
case key of
'A'..'Z', 'a'..'z', '0'..'9' : begin end; // No action
else
Key := #0;
end;
लेकिन सबसे बहुमुखी रास्ता निश्चित रूप से है:
if not ValidChar(key) then
Key := #0;
उस मामले आप कई स्थानों में ValidChar उपयोग कर सकते हैं और अगर यह होने की जरूरत में बदल गया आपको केवल इसे एक बार बदलना होगा।
अगर मैं तुम्हें सही ढंग से समझ आप इस तरह एक समारोह इस्तेमाल कर सकते हैं:
function StripNonAlphaNumeric(const AValue: string): string;
var
SrcPtr, DestPtr: PChar;
begin
SrcPtr := PChar(AValue);
SetLength(Result, Length(AValue));
DestPtr := PChar(Result);
while SrcPtr <> #0 do begin
if SrcPtr[0] in ['a'..'z', 'A'..'Z', '0'..'9'] then begin
DestPtr[0] := SrcPtr[0];
Inc(DestPtr);
end;
Inc(SrcPtr);
end;
SetLength(Result, DestPtr - PChar(Result));
end;
यह (कम readibility की कीमत पर) उच्चतम गति के लिए PChar का प्रयोग करेंगे।
संपादित करें: उपयोग के बारे में gabr द्वारा टिप्पणी पुन DestPtr [0] DestPtr^ के बजाय: यह एक ही बाइट्स वैसे भी संकलन करना चाहिए, लेकिन इसी तरह के कोड है, जहां आप की जरूरत में अच्छा अनुप्रयोगों देखते हैं भविष्य का ध्यान करना। मान लीजिए कि आप न्यूलाइन को प्रतिस्थापित करना चाहते हैं, तो आप
function ReplaceNewlines(const AValue: string): string;
var
SrcPtr, DestPtr: PChar;
begin
SrcPtr := PChar(AValue);
SetLength(Result, Length(AValue));
DestPtr := PChar(Result);
while SrcPtr <> #0 do begin
if (SrcPtr[0] = #13) and (SrcPtr[1] = #10) then begin
DestPtr[0] := '\';
DestPtr[1] := 't';
Inc(SrcPtr);
Inc(DestPtr);
end else
DestPtr[0] := SrcPtr[0];
Inc(SrcPtr);
Inc(DestPtr);
end;
SetLength(Result, DestPtr - PChar(Result));
end;
और इसलिए मैं आमतौर पर^का उपयोग नहीं कर सकता।
बीटीडब्लू, क्या किसी को यह पता है कि हाइलाइटिंग सही तरीके से कैसे काम करता है इस तरह प्रारूपित करना है?
मुझे एसआरसीपीआरटी [0] का उपयोग बहुत दिलचस्प लगता है - पहले कभी ऐसा दृष्टिकोण नहीं देखा। SrcPtr^और DestPtr^का उपयोग करने के लिए और अधिक कैनोलिक तरीका होगा। – gabr
पुन: स्वरूपण - शायद अगर आप "DestPtr [0]: = 't'" के बाद लापता अर्धविराम डालते हैं तो हाइलाइटिंग काम करेगी। :-) –
धन्यवाद केन, सही है, लेकिन यह अभी भी काम नहीं कर रहा है :-(हाइलाइटर दुर्भाग्य से सी स्ट्रिंग्स के रूप में डेल्फी तारों का इलाज करता है। – mghie
- 1. स्ट्रिंग में एकाधिक वर्णों को बदलने, सबसे तेज़ तरीका?
- 2. गैर-अल्फान्यूमेरिक वर्णों को कैसे निकालें?
- 3. स्ट्रिंग को बाइनरी में कनवर्ट करने का सबसे तेज़ तरीका?
- 4. स्ट्रिंग को जांचने का सबसे तेज़ तरीका जावा
- 5. PHP में स्ट्रिंग से सभी गैर-अल्फान्यूमेरिक और गैर-स्पेस वर्णों को कैसे निकालें?
- 6. C++ में स्ट्रिंग से सभी गैर अल्फान्यूमेरिक वर्णों को कैसे पट्टी करें?
- 7. डेल्फी में एक रेखा पार करने का सबसे तेज़ तरीका क्या है?
- 8. अल्पविराम से अलग स्ट्रिंग को int [] में परिवर्तित करने का सबसे आसान तरीका क्या है?
- 9. एक JSite स्ट्रिंग को SQLite तालिका में पार्स करने का सबसे तेज़ तरीका क्या है?
- 10. सिस्टम को स्ट्रिंग आउटपुट करने का सबसे तेज़ तरीका क्या है?
- 11. स्ट्रिंग में डुप्लिकेट कैरेक्टर रिमूवल को कार्यान्वित करने का सबसे तेज़ तरीका (सी #)
- 12. विज़िटर पैटर्न सी ++ में पैरामीटर प्रकारों को अलग करने का सबसे तेज़ तरीका है?
- 13. एक स्ट्रिंग को विभाजित करने और आर का उपयोग कर वर्णों को गिनने का तेज़ तरीका?
- 14. पायथन में sublist को पुनर्स्थापित करने का सबसे तेज़ तरीका
- 15. एक स्ट्रिंग (PowerShell) में HTML- विशिष्ट वर्णों से बचने का सबसे अच्छा तरीका क्या है?
- 16. जावा स्ट्रिंग एस्ट्रोफ़ेस को छोड़कर सभी गैर-अल्फान्यूमेरिक पर विभाजित
- 17. सी # में स्ट्रिंग से न्यूलाइन को हटाने का सबसे तेज़ तरीका क्या होगा?
- 18. संख्याओं की सूची को एक अल्फान्यूमेरिक स्ट्रिंग में संपीड़ित या एन्कोड करने का सबसे अच्छा तरीका क्या है?
- 19. एक स्ट्रिंग (रूबी में) के अंतिम एन वर्णों को हटाने का सबसे अच्छा तरीका क्या है?
- 20. बड़ी .NET स्ट्रिंग में न्यूलाइन को गिनने का सबसे तेज़ तरीका क्या है?
- 21. क्या नेट से स्ट्रिंग में पृष्ठ डाउनलोड करने का कोई तेज़ तरीका है?
- 22. यूजीएफ 8 स्ट्रिंग्स से गैर अल्फान्यूमेरिक वर्णों को हटाने के लिए रेगेक्स
- 23. उद्देश्य-सी में तारों के माध्यम से खोज करने का सबसे तेज़ तरीका क्या है?
- 24. यूनिकोड वर्णों को एन्कोड करने का उचित तरीका क्या है?
- 25. स्पैस बूलियन मैट्रिस का प्रतिनिधित्व करने और गुणा करने का सबसे तेज़ तरीका क्या है?
- 26. सूची में किसी आइटम को खोजने का सबसे तेज़ तरीका?
- 27. सबसे तेज़ तरीका एक टेम्पलेट
- 28. ग्रेगोरियन कैलेंडर को क्लोन करने का सबसे तेज़ तरीका?
- 29. पंक्तियों की एक्सेल रेंज प्राप्त करने का सबसे तेज़ तरीका
- 30. स्ट्रिंग नाम से विधि को कॉल करने के लिए .Net 3.5 में सबसे तेज़ तरीका क्या है?
वहां अच्छा टैगिंग;) – AdrianoKF