Jak ustawić separator CommaText dla TStringList?

0

Witam,
mam problem z ustawieniem znaku separatora dla TStringList. Wprowadzam ustawienia jak poniżej ale program stosuje również spację jako separator i zamiast oczekiwanego:

sl[0] = 'Nasza Ala'
sl[1] = 'ma'
sl[2] = 'ładnego kota'

otrzymuję

sl[0] = 'Nasza'
sl[1] = 'Ala'
sl[2] = 'ma'
sl[3] = 'ładnego'
sl[4] = 'kota'

var
  sl: TStringList;
  s: string
begin
  s := 'Nasza Ala,ma,ładnego kota';
  sl := TStringList.Create;
  sl.Delimiter := ',';
  sl.DelimitedText := ',';
  sl.CommaText := s;
  sl.Free;
end;

dodanie znaczników <code class="delphi"> - furious programming

0
sl.StrictDelimiter := True; 
0
guciex napisał(a):
sl.StrictDelimiter := True; 

Pracuje na Delphi 7 i niestety tu takiej właściwości nie ma :(

0

no to użyj http://4programmers.net/Delphi/ExtractStrings . Innego pomysłu na szybko nie mam:D

0

@Marcin Kuśmierczyk - klasa TStrings w nowszych Delphi (bodajże od wersji XE2) oraz w Lazarusie posiadają właściwość StrictDelimiter, jednak w starym Delphi7 tej właściwości nie ma, więc dzielić tekst trzeba nieco na około (niestety gotowych mechanizmów nie ma); Ustawiając tę właściwość na True rozwiązałbyś problem, ale nie tym razem;

Możesz skorzystać z ExtractStrings, podając odpowiednie wartości w parametrach, dzięki czemu podzielisz sobie łańcuch tak, jak tego chcesz; Możesz też napisać swoją funkcję/procedurę ekstrakcji podciągów - nie jest to trudne.

1 użytkowników online, w tym zalogowanych: 0, gości: 1