Почему моя строка не обрезается, когда я вызываю ее? - PullRequest
0 голосов
/ 12 июля 2011

Я добавил пробел в мою строку, но Trim не удаляет этот пробел. Почему нет?

str:=tstringlist.create;
str.LoadFromFile(s);
Trim(str.strings[1]);
str.Free;

Ответы [ 4 ]

19 голосов
/ 12 июля 2011

Trim является функцией и не изменяет свой параметр на месте. Вы хотите написать:

str.strings[1] := Trim(str.strings[1]);
16 голосов
/ 12 июля 2011

Trim возвращает измененную строку вместо изменяемой вами строки.

trimmed:= Trim(str.strings[1]);

должно работать.

0 голосов
/ 15 июля 2011

Если вы хотите обрезать все строки (строки) в списке строк, сделайте это:

str:=tstringlist.create;
str.LoadFromFile(s);
for i:=0 to str.Count - 1 do
  str.strings[i]:= Trim(str.strings[i]); 
str.Free;
0 голосов
/ 15 июля 2011

Чтобы код работал так, как вы хотите, сделайте следующее:

str:=tstringlist.create;
str.LoadFromFile(s);
str.strings[1]:= Trim(str.strings[1]); //This line was modified
str.Free;

Если вы хотите сохранить обрезанную строку в файл (перезаписывая файл), сделайте следующее:

str:=tstringlist.create;
str.LoadFromFile(s);
str.strings[1]:= Trim(str.strings[1]); //This line was modified
str.SaveToFile(s);                     //This line was added
str.Free;
...