نصائح

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

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


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).


تعليقات:

  1. Renfred

    فقط سوبر ، رائع ، رائع))

  2. Cromwell

    شيء ما لا يعمل بهذه الطريقة

  3. Shaktihn

    يمكن أن تملأ الفجوة ...

  4. Kingswell

    يمر بجانب ...

  5. Conlaoch

    انا أنضم. وركضت في هذا. دعونا نناقش هذه القضية.

  6. Karif

    برافو ، هذا الفكر الرائع سيكون مفيدًا

  7. Fakhiri

    ها ، بارد!

  8. Dougul

    برافو ، فكرة رائعة والإطار الزمني



اكتب رسالة