Hvordan analysere en avgrenset streng til en strengliste
Roberto Westbrook / Getty Images
Det er mange ganger du trenger å dele en streng inn i en Delphi tilbyr flere metoder for å analysere en streng, men du kan finne ut at ingen av dem gjør akkurat det du trenger. For eksempel bruker ExtractStrings RTL-metoden alltid anførselstegn (enkelt eller dobbelt) for skilletegn. En annen tilnærming er å bruke Avgrensning og Avgrenset tekst egenskapene til TStrings-klassen – men dessverre er det en feil i implementeringen ('inne' i Delphi) der mellomromstegnet alltid brukes som skilletegn. Den eneste løsningen for å analysere en avgrenset streng er å skrive en egen metode: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Bruk (fyller ut Memo1):
Eksempel på avgrenset streng
prosedyre ParseDelimited(const sl: TStrings; const-verdi: streng; const-skilletegn: streng) ;
var
dx : heltall;
ns : streng;
txt : streng;
delta : heltall;
begynne
delta := Lengde(skilletegn) ;
txt := verdi + skilletegn;
sl.BeginUpdate;
sl.Tøm;
prøve
mens Length(txt) > 0 gjør
begynne
dx := Pos(skilletegn, txt) ;
ns := Copy(txt,0,dx-1) ;
sl.Add(ns) ;
txt := Kopier(txt,dx+delta,MaxInt) ;
slutt;
til slutt
sl.EndUpdate;
slutt;
slutt;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ParseDelimited(Memo1.lines,'Zarko;Gajic;;DelphiGuide',';')