
We are searching data for your request:
Upon completion, a link will appear to access the found materials.
Բազմաթիվ անգամներ, երբ դուք պետք է տողը բաժանեք լարերի շարքին `օգտագործելով կերպար որպես տարանջատիչ: Օրինակ, CSV («ստորակետից» տարանջատված) ֆայլը կարող է ունենալ մի տող, ինչպիսին է «Zarko; Gajic;; DelphiGuide» և ուզում եք, որ այս տողը բաժանվի 4 տողի (տողերի) «Zarko», «Gajic», «» ( դատարկ տողը) և «DelphiGuide» - ը, օգտագործելով կիսամյակային գաղութի բնույթը »;" որպես սահմանազատիչ:
Դելֆին տալիս է մի շարք մեթոդ ՝ տողը վերլուծելու համար, բայց կարող եք գտնել, որ ոչ մեկը չի անում այն, ինչ ձեզ հարկավոր է: Օրինակ, ExtractStrings RTL- ի մեթոդը միշտ օգտագործում է մեջբերման նիշերը (մեկ կամ երկակի) սահմանազատիչների համար: Մեկ այլ մոտեցում է օգտագործելՍահմանազերծիչ ևDelimitedText TStrings դասի հատկությունները, բայց, ցավոք, կատարման մեջ կա մի սխալ («ներսում» Delphi), որտեղ տիեզերական կերպարը միշտ օգտագործվում է որպես սահմանազատիչ:
Անսահմանափակ տողը վերլուծելու միակ լուծումը ձեր սեփական մեթոդի գրելն է.
Սահմանափակ լարային օրինակ
~~~~~~~~~~~~~~~~~~~~~~~~~
կարգը ParseDelimited (const sl: TStrings; const value: string; const delimiter: string);
var
dx: ամբողջ թիվ;
ns: լարային;
txt: լարային;
դելտա. ամբողջ թիվ;
սկսվում է
դելտա. = երկարություն (սահմանազերծող);
txt: = արժեք + սահմանազատիչ;
sl.BeginUpdate;
sl.Clear;
փորձիր
իսկ երկարությունը (txt)> 0 անել
սկսվում է
dx: = Pos (սահմանազատիչ, txt);
ns: = Պատճենել (txt, 0, dx-1);
sl.Add (ns);
txt: = Պատճենել (txt, dx + delta, MaxInt);
վերջ;
վերջապես
sl.EndUpdate;
վերջ;
վերջ;
~~~~~~~~~~~~~~~~~~~~~~~~~
Օգտագործում (լրացնում է Memo1).
ParseDelimited (Memo1.lines, 'Zarko; Gajic;; DelphiGuide', ';')
բացարձակապես համահունչ է նախորդ նախադասությանը
What a wonderful topic
Your opinion is useful
Շատ հետաքրքիր էր կարդալ, շնորհակալություն:
This topic is simply incomparable :), I really like)))
Դա ճիշտ է! I think this is a very different concept. Լիովին համաձայն է նրա հետ: