Как удалить строки из txt файла которые содержат более 10 символов и менее десяти символов с использованием TStringList?
Code: StrList: TstringList; I: Integer; begin StrList := TstringList.Create; try for I:= 0; I < StrList.Count - 1 do begin if (Length(StrList.Strings[I]) > 10) or (Length(StrList.Strings[I]) < 10) then StrList.Delete(I); end; finally StrList.Free; end; end; Удаляться все строки,
Code: StrList: TstringList; I: Integer; begin StrList := TstringList.Create; try for I:= 0; I < StrList.Count - 1 do begin if (Length(StrList.Strings[I]) > 10) [COLOR=Red]and[/COLOR] (Length(StrList.Strings[I]) < 10) then StrList.Delete(I); end; finally StrList.Free; end; end;
Код не компилился, сделал так: Code: var StrList: TstringList; I: Integer; begin StrList := TstringList.Create; try StrList.LoadFromFile('Исходный.txt'); I:= 0; while I < StrList.Count - 1 do// mironich, ты не указал начало цикла begin if (Length(StrList.Strings[I]) > 13) and (Length(StrList.Strings[I]) < 13) then StrList.Delete(I) else inc(i); //иначе вперед end; StrList.SaveToFile('Исходный.txt'); finally StrList.Free; end; end; Компилится, но не работает) Опять что-то не то! Как быть?
Приведи пример такого слова... Тебе нужно удалить все слова, длина которых не равняется 10, насколько я понимаю. Тогда: Code: ... for i := StringList.Count - 1 downto 0 do if Length(StringList[i]) <> 10 then StringList.Delete(i); ...
Code: procedure TForm1.Del13; var StrList: TstringList; I: Integer; begin StrList := TstringList.Create; try StrList.LoadFromFile('Исходный.txt'); I:= 0; for I := StrList.Count - 1 downto 0 do begin if (Length(StrList.Strings[I]) <> 10) then StrList.Delete(I); end; StrList.SaveToFile('Исходный.txt'); finally StrList.Free; end; end; Может кому пригодится! Всем спасибо за помощь!