2010-06-17 9 views
6

पर भी पार्स करना प्रतीत होता है मेरे पास एक साधारण स्ट्रिंग है जो कुछ चरित्र द्वारा सीमित है, चलिए एक अल्पविराम कहें। मुझे एक TStringList बनाने में सक्षम होना चाहिए और इसे एक अल्पविराम में डिलीमीटर सेट करना चाहिए, फिर उस डिलीमिटेड टेक्स्ट को उस पाठ में सेट करें जिसे मैं पार्स करना चाहता हूं और इसे स्वचालित रूप से पार्स किया जाना चाहिए।किसी TStringList को डिलीमीटर का उपयोग करके स्ट्रिंग को पार्स करना, रिक्त स्थान (डेल्फी)

समस्या तब होती है जब मैं आउटपुट को देखता हूं, इसमें डिलीमीटर के रूप में रिक्त स्थान भी शामिल होते हैं और मेरे परिणामों को चॉप करते हैं। मैं इससे कैसे बच सकता हूं, या ऐसा करने का एक बेहतर तरीका है।

उत्तर

22

TStringList पर एक StrictDelimiter प्रॉपर्टी है। इसे सही पर सेट करें और यह केवल डिलीमीटर पर पार्स होगा, रिक्त स्थान पर नहीं।

+10

नोट: यह डेल्फी 2005 (या 2006) केवल से ही उपलब्ध है। यदि आप पुराने संस्करण का उपयोग कर रहे हैं, तो आप "StrictDelimitedText" प्रॉपर्टी के साथ TStringList का अपना उप-वर्ग बना सकते हैं। दुर्भाग्य से SetDelimitedText दोनों निजी और गैर-वर्चुअल (कम से कम D7 में) है ताकि आप इसे ओवरराइड नहीं कर सकें। –

5

यह TStrings.DelimitedText संपत्ति का मानक, दस्तावेज व्यवहार है। आप उस व्यवहार को अक्षम करने के लिए StrictDelimiter संपत्ति सत्य पर सेट करना चाहते हैं।

+4

मेसन ने आपको हराया ;-) –

+3

शायद रोब ने निकर स्वरूपण के लिए भुगतान किया है :) – jpfollenius

4

आप, समारोह "ExtractStrings" पर देख सकते हैं आप d7 उपयोग कर रहे हैं

संबंधित मुद्दे