2010-06-17 7 views
6

Mam prosty ciąg, który jest ograniczony przez niektóre znaki, powiedzmy przecinek. Powinienem móc utworzyć TStringList i ustawić separator na przecinek, a następnie ustawić tekst DelimitedText na tekst, który chcę przeanalizować, i powinien on zostać automatycznie przeanalizowany.Analizowanie ciąg znaków przy użyciu ogranicznika do TStringList, wydaje się również parsować na spacje (Delphi)

Problem polega na tym, że gdy patrzę na wynik, zawiera on również spacje jako ograniczniki i przedstawia wyniki. Jak mogę tego uniknąć, czy jest na to lepszy sposób?

Odpowiedz

22

Na liście TStringList istnieje własność StrictDelimiter. Ustaw ją na True i będzie analizować tylko ogranicznik, a nie spacje.

+10

Uwaga: Funkcja ta jest dostępna tylko z Delphi 2005 (lub 2006) tylko. Jeśli używasz starszej wersji, możesz utworzyć własną podklasę TStringList z właściwością "StrictDelimitedText". Niestety SetDelimitedText jest zarówno prywatny, jak i nie-wirtualny (przynajmniej w wersji D7), więc nie można go przesłonić. –

5

To jest standardowe, udokumentowane zachowanie właściwości TStrings.DelimitedText. Chcesz ustawić właściwość StrictDelimiter na true, aby wyłączyć to zachowanie.

+4

Mason pokonał cię ;-) –

+3

Prawdopodobnie cena Rob zapłacił za ładniejsze formatowanie :) – jpfollenius

4

Można spojrzeć na funkcję „ExtractStrings”, jeśli używasz D7

Powiązane problemy