में Tstringlist की लंबाई की जांच कैसे करें मैं यही करने की कोशिश कर रहा हूं। मेरे पास एक नाम के लिए एक Tstringlist है। यदि नाम डीओई, जॉन, एनएमआई प्रारूप में है, तो मैं इसे नाम को 3 अलग-अलग तारों में विभाजित करना चाहता हूं।
लेकिन समस्या यह है कि क्या कोई मध्य प्रारंभिक नहीं है। या पहला नाम। जैसे यह सिर्फ डीओई हो सकता है, तो आखिरी दो पंक्तियां सीमा से बाहर हैं। और कार्यक्रम दुर्घटनाग्रस्त हो जाता है। सबसे अच्छा समाधान क्या है?डेल्फी
var ptname, physname: Tstringlist;
if pos(',',Msg.Grp2[0].ObsReq[0].OrderingProviderFamilyName) > 0 then // split it if it has a comma
begin
physname := TstringList.Create;
physname.CommaText := Msg.Grp2[0].ObsReq[0].OrderingProviderFamilyName;
Parameters.ParamByName('@OrderingLastNameOBR16').Value := physname[0];
Parameters.ParamByName('@OrderingFirstNameOBR16').Value := physname[1];
Parameters.ParamByName('@OrderingMiddleNameOBR16').Value := physname[2];
physname.Free;
end
डेविड का अच्छा समाधान एक तरफ, यह पूरी तरह से आबादी वाले सीएसवी के लिए क्लीनर होगा। यदि कोई तत्व गुम है, तो आपके पास कॉमा है। पूर्व: डीओई DOE होगा, फिर भी यह चारों ओर गड़बड़ किए बिना ठीक है। –
@ क्रिस: डेविड? डेविड कौन? Harumph! : पी – dthorpe