نصائح

كيفية تحليل سلسلة محددة في قائمة سلسلة

كيفية تحليل سلسلة محددة في قائمة سلسلة


We are searching data for your request:

Forums and discussions:
Manuals and reference books:
Data from registers:
Wait the end of the search in all databases.
Upon completion, a link will appear to access the found materials.

هناك عدة مرات عندما تحتاج إلى تقسيم سلسلة إلى مجموعة من السلاسل باستخدام حرف كفاصل. على سبيل المثال ، قد يحتوي ملف CSV ("مفصول بفواصل") على سطر مثل "Zarko؛ Gajic ؛؛ DelphiGuide" وتريد أن يتم تحليل هذا السطر إلى 4 أسطر (سلاسل) "Zarko" ، "Gajic" ، "" (( سلسلة فارغة) و "DelphiGuide" باستخدام الحرف النقطي "؛" كمحدد.

توفر دلفي عدة طرق لتحليل سلسلة ، ولكن قد تجد أن لا أحد يفعل ما تحتاجه بالضبط. على سبيل المثال ، تستخدم طريقة ExtractStrings RTL دائمًا أحرف اقتباس (مفردة أو مزدوجة) للمحدِّدات. نهج آخر هو استخداممحدد وDelimitedText خصائص فئة TStrings- ولكن لسوء الحظ ، يوجد خطأ في التنفيذ ("داخل" دلفي) حيث يتم استخدام حرف المسافة دائمًا كمحدد.

الحل الوحيد لتحليل سلسلة محددة هو كتابة طريقة خاصة بك:

مثال على سلسلة محددة

~~~~~~~~~~~~~~~~~~~~~~~~~
الإجراء ParseDelimited (const sl: TStrings ؛ قيمة const: string ؛ const const: string)؛
فار
dx: عدد صحيح
ns: سلسلة ؛
النص: سلسلة.
دلتا: عدد صحيح
ابدأ
دلتا: = الطول (المحدد) ؛
txt: = قيمة + محدد ؛
sl.BeginUpdate.
sl.Clear.
محاولة
بينما طول (النص)> 0 القيام به
ابدأ
dx: = Pos (محدد ، txt) ؛
ns: = Copy (txt، 0، dx-1)؛
sl.Add (ns) ؛
txt: = Copy (txt، dx + delta، MaxInt)؛
النهاية؛
أخيرا
sl.EndUpdate.
النهاية؛
النهاية؛
~~~~~~~~~~~~~~~~~~~~~~~~~

الاستخدام (يملأ في Memo1):
ParseDelimited (Memo1.lines، "زاركو، Gajic ؛؛ DelphiGuide '،'، ')


شاهد الفيديو: سلسلة إكسل للمعلمين ح11: تكوين تقرير من أكثر من صفحة باستخدام القائمة المنسدلة (قد 2022).